The ill-conceived notion that parents giving children procedural instructions is somehow like programming brings me to a question for you as a teacher.
I've noticed that the industry really prides itself on algorithms and this is commonly reflected in interviews.
However, it seems to me that merely discussing algorithms, however clever they might be, is actually an intuitive human activity not unlike the example of the parent verbalizing procedural instructions to their child. Therefore, I would argue that algorithm design, though clearly an intellectual challenge in its own right, does not target the essential part that makes programming hard and inaccessible to so many people. (Disclaimer: a high-level algorithm discussion is usually followed by whiteboard coding, which I'm ignoring in this critique as a separate kind of activity).
Do you agree with this claim that algorithm design is not actually the thing that makes programming so difficult for laypeople? Can you give your take on what does make programming hard or what students struggle with the most?
I think algorithm design is hard. Most students/people can't break down a problem into small enough steps for the computer to do them.
Are you familiar with the concept of "chunking" in memory research? Well, computers don't chunk but humans do. Humans tend to think about their algorithms in terms of the chunks they already know, but for computers sometimes each chunk has to be broken down into much smaller sub-steps.
And that's non-intuitive and hard. When explaining stuff to a human you get immediate non-verbal or sometimes verbal feedback if they don't understand the chunks, but computers just give a syntax error.
SECONDLY. Students have trouble making an accurate mental model of what the computer is doing at each step, so they can't trace through the code, much less create new code.
It sounds like what you're describing is not figuring out at a high level what to do, but formalizing that into low-level instructions for a computer. This goes exactly to my point. What I meant by "algorithm design" is strategy selection, which I want to be careful to separate from strategy formalization for a computer. It is the latter that I think laypeople struggle with the most, however, the fascination with algorithms often drives attention to the former. For example, it's easy to be impressed by the cleverness of binary search, but it's actually relatively straightforward to understand as a high-level concept. The harder thing for a layperson is to formalize binary search into a working set of computer steps. I think there is a certain cognitive bias at play, where the formality of fine detail seems lowly and menial, so we want to skip over it, in spite of the fact that it's actually the biggest hurdle for most people to overcome.
> And this meant that the great danger to the peace and freedom of the world came not from Moscow or "international communism," but from the U.S. and its Empire stretching across and dominating the world.
Can anyone explain how this statement makes any sense for a supposed libertarian at that time? Any way you look at it, the Soviet Union 1) suppressed freedom and 2) espoused militarism. I'm puzzled why it seems to get a free pass here.
USSR did suppress freedom. It was a state after all; that is the purpose. USSR had a military, but it never received more than a tiny fraction of the resources that USA military received. The CIA and other liars continually exaggerated the strength of USSR military in order to inspire paranoia in the political and media elite, and to keep the world divided in ways that were good for business.
Their military still might have been a match for USA military, because keeping armaments manufacturers wealthy was never their purpose in the way it was in USA. Fortunately that test never came, perhaps because USSR believed much of the same hype we believed in USA. The Soviets were constantly afraid of what USA might do, and nearly every action they made was a response to that fear. Thus it was the actions of USA that drove the cold war.
The phrase I'd like to examine is "free pass". What constitutes a "free pass"? Would we consider allowing people on the other side of the earth to live as they will to be a "free pass"? How about not attacking those who have never attacked us? Would not spending more than the rest of the world combined on our military deserve the classification of "free pass"? We anarchists are so stupid, please explain it to us.
> The Soviets were constantly afraid of what USA might do, and nearly every action they made was a response to that fear. Thus it was the actions of USA that drove the cold war.
Every newspaper, every magazine in the USSR had the "Пролетарии всех стран, соеденяйтесь!" printed above the title. Which roughly means "Working men of the world, unite!" and refers this Marx's quote:
"The Communists disdain to conceal their views and aims. They openly declare that their ends can be attained only by the forcible overthrow of all existing social conditions. Let the ruling classes tremble at a Communistic revolution. The proletarians have nothing to lose but their chains. They have a world to win. WORKING MEN OF ALL COUNTRIES, UNITE!"
I'm sure that the Soviets regularly found something in our newspapers that upset their sensibilities. Our grandparents should have demanded better justifications for the radical changes made to our nation.
Except Soviets could not possible do this just for the simple reason that they were not allowed to read your newspapers.
Anyways, the point of that quote was not to enrich the newspaper's contents. It was to remind the citizens that the USSR's raison d'être was to bring the world's Communistic revolution.
Not entirely. In fact, one of the main "insights" brought by Stalinism was the rejection of the necessity of the Marxist international revolution in favor of Socialism in One Country.
Not entirely. Socialism in one country was a temporary measure since the world revolution did not take on in the 1920s. The way that measure worked was to build up military and political power to force the revolution even if some countries were not progressive enough to do it on their own. Hence the slogan. Hence the USSR forcing "revolutions" all over the world.
This map [0] seems to indicate that Russia's maximum extent predated USSR. They only lost territory after that. Of course, they did hold power over most of Eastern Europe for decades, but since that was a result of WWII it is also a fact that predates the period under discussion.
> Any way you look at it, the Soviet Union 1) suppressed freedom and 2) espoused militarism.
What human organization with a military arm doesn't do that? And for that matter how are you even defining freedom? The defense of freedom in the abstract is worse than meaningless.
Airbnb's technical quality has been obviously crap for its entire existence. Why are we taking engineering cues from a glorified room rental site that is frequently buggy?
Don't think of it as advice from a crappy site. Think of it as developers at a big company sharing how they do things. Take what you want from it, or just use it as a conversation jumping off point.
I've used AirBnB several times and never found it buggy enough to impair my main objective of booking a place to stay. It seems to be as robust as it needs to be.
The whole tone of this question smacks of "gold fever". I'm guessing you're thinking about entering the field, so I'm going to tell you what someone told me during the original dot-com bubble:
Only become a programmer if you truly enjoy it.
If you're getting into programming solely because you think it's "on fire", you're going to have a bad time. It is always possible at any given moment for various reasons that VCs could collectively pull back on tech, or some major employers could downsize, and flood the market with excess talent. No one can predict this shit. There was a time post-bubble when many programmers could hardly give away their skills let alone make big bucks. Not long later there was a time when it was a foregone conclusion that all software development was going to India. Now here we are talking like "is this money wagon going to go to infinity?" and I say stop. Just stop. Do it because it suits you. Do it because you like the work. Please don't do it for "the money" which may or may not deliver for you, ever.
Isn't that a bit like saying, "Innovation and productivity in the tech sector are at all-time highs, why would you risk that by fiddling with patent reform?" The environment is flourishing in spite of, not because of, these issues.
1) You don't outsource your core in business, so outsourcing tech is not appealing for tech startups, period.
2) Typically tech startups are more of a growth optimization problem than a cost optimization problem. Outsourcing to cheaper parts of the US, let alone overseas, usually doesn't increase the startup's growth potential.
Your [1] is flawed because what is core is continuously shifting as the advantages of the knowledge you can get somewhere else exceed the costs.
An example from banking:
"Morgan Stanley has about 500 people employed in India doing research and statistical analysis. About 100 of Goldman Sachs’ 3,000 employees in Bangalore are working on investment research."
Be careful not to conflate offshoring with outsourcing, which the article does. Some startups will have their own employees overseas, but my point is specifically about outsourcing to other companies.
1) the tech is rarely the product (so, rarely the core), does the end user care how nice the code is? what's the stack? or that it just works and provides a valuable service?
2) OP's point is that you should spend less on dev and more on marketing thus, more optimized for growth(?)
Well, the SBCL code includes code for literally generating assembly code specific to x86-64 to get that performance and is 3 times as long as Python. Presumably the inline assembly code is not part of any LISP standard but highly specific to that specific LISP implementation.