552 karma · joined November 28, 2023
I understand the importance of learning formal methods (discrete math, logic, algorithms, etc.), but they are not nearly enough to help someone get started with a software project and succeed at it.
So, if not "software engineering", then what should we teach to a student who is going to be thrown into the software world as it exists in its current form?
I understand the premise of the idea and that more scientists in the field are trying to make their research more rigorous. But, this also indicates that the research that has been done until recently was NOT "evidence-based", hence not very credible and reproducible.
What?!
The entire Picasso vs house painter analogy is insulting.
> Picasso goes to a cabin in the woods for two weeks to architect something that handles every edge case and is absolutely elegant...
If this is a product owner's idea of how software development occurs, they must be either clueless, narcissistic, cruel, or all of the above.
So, what are good examples of some things that we used to call AI, which we don't call AI anymore because they work? All the examples that come to my mind (recommendation engines, etc.) do not have any real societal benefits.
I see academics going crazy with Obsidian to organize and link their precious little ideas and research articles together. But, only to create an overwhelming mess that they will be afraid to look back to in couple years.
Anybody, remember MindMap? Same idea as Obsidian and it is all but dead at this point.
Without exaggeration, you can make instant money transfers across banks; buy stocks, gold, insurance, bonds, foreign currency; pay taxes and other government fees; make international SWIFT transfers; open retirement accounts; buy private healthcare; instantly open as many checking, savings, CD accounts as you want; and many more.
And in the US, they try to sell Zelle as the biggest innovation in banking. It's just pathetic.
It is this attitude toward developers that made stupid shit like Scrum possible. Processes will not solve communication problems if there is no mutual trust to start with.
Increasingly, I am also blaming the Agile Manifesto for causing the mess we are all in.
Given current business tendencies, the authors should have probably foreseen the future consequences of their wishy-washy manifesto declarations. I think "true Agile has never been implemented" should not absolve them from assuming some responsibility.
> Science involves confronting our 'absolute stupidity'.
I understand where the author is coming from, but these are just useless statements. Stupidity and knowing that you don't know stuff are not the same thing. The former involves an inability to understand or learn, whereas the latter involves an acknowledgment of our current state of ignorance and that we can do better.
I don't believe one can be successful in science by constantly feeling stupid and getting used to it. You have to be comfortable with not knowing stuff, but with the drive and self-confidence that you can discover new things and expand your knowledge, which is of course not easy either.
More seriously, at this point, any idiot who downloads such invasive apps deserves its consequences.
I'd wager that they can actually tell. They just choose to accept it, or, at least, not to do anything about it.
I see it in my own field (software engineering). Sometimes pushing against lies and stupidity is just too hard and tiring.
I am currently using a Raspberry Pi Zero W as a wireless security camera. It has been running continuously for over a year without a single crash.
I thought that they were looking for "rock stars". Not the same thing...
4. Unless you have a somewhat detailed requirements document based on actual customer input, you will build the wrong thing. All stakeholders should be in agreement with what's on that document.
6. For the love of god, no Scrum or daily standup, unless you want your team hate you. Weekly iteration meetings for progress updates might work better. Your 1-on-1's is a better way to track team progress.
> However, they wanted to develop a technique that avoids fine-tuning, a process in which engineers retrain a general-purpose LLM on a small amount of task-specific data to make it an expert at one task.
This method does not avoid fine tuning. It just offloads the task to somebody else (i.e., to the LLM).
I'll buy the promise of the approach when the authors can show that they can vastly outperform an AR time series model or the simple techniques mentioned in the linked article.
The other is ROC (receiver operating characteristic) used in statistics and machine learning. The current usage is very divorced from its original meaning (related to radars as I understand) and it sounds very stupid when used in its current context. It is just a simple ratio of a few statistical measures. I think using such names actually makes things even less understandable.
On the other hand, definitions (ie, naming things) is very useful in math and other disciplines.
This is a very interesting description of group think between less experienced developers. I've never thought of it this way, but it seems to have some truth in it.