Is this still the case? I thought Amazon started collecting (and paying) sales tax years ago. It was a big deal at the time. Are you referring to something else?
Probably referring to amazon's large expenditure for which they use to offset their taxes - but these are legitimate expenditures (such as operating costs of a fleet of airplanes, warehouses, other expenses that could be considered as growth expenses).
No, the common criticism of Amazon (and companies like it) is that they cut deals with governments and/or use sneaky international accounting tricks (such as the famous "double Irish Dutch sandwich") to pay very low rates of tax relative to their profit (not revenue).
For example, Amazon UK paid zero Corporation Tax in the UK in 2023[0] despite recording £222m in profit. Meanwhile, a smaller UK bookstore has to pay 25% CT on its profits - and it can't afford the army of lawyers and accountants it would take to avoid this. And since Amazon is paying less tax, it can sell its books more cheaply, undercutting the smaller competitors.
Some might call this unfair. And I'm inclined to agree.
But to be honest, I still buy books off Amazon even though it makes me feel slightly icky. What's a boy to do?
>No, the common criticism of Amazon (and companies like it) is that they cut deals with governments and/or use sneaky international accounting tricks (such as the famous "double Irish Dutch sandwich") to pay very low rates of tax relative to their profit (not revenue).
>For example, Amazon UK paid zero Corporation Tax in the UK in 2023[0] despite recording £222m in profit.
But if you read the article you linked, you'd see it's a pretty straightforward investment deduction, rather than some dastardly tax evasion scheme? Amazon might be still doing the "double Irish Dutch sandwich" or whatever, but the article makes it clear that most of it is coming from investment tax credits.
>Amazon’s main UK division has paid no corporation tax for the second year in a row after benefiting from tax credits on a chunk of its £1.6bn of investment in infrastructure, including robotic equipment at its warehouses.
>The government’s “super-deduction” scheme for businesses that invest in infrastructure was introduced by Rishi Sunak when he was chancellor. It allowed companies to offset 130% of investment spending on plant and machinery against profits for two years from April 2021. Amazon booked a credit of £1.13m in 2021 under the scheme.
What taxes are meant here? This is always the weird part. I understand circumventing various location specific taxes or getting special deals. But taxes are paid on profit. And just as any company if there is no profits there is no tax.
And independent bookstore could use the profit they make to say remodel their store. And inside certain rules that would be legitimate expense. And they would not pay tax on it.
I did this, though Robotics is adjacent for me. My software is still web tech interfacing with robots. If I wanted to, I could probably transfer internally to do more direct work with robots.
The way I did it was to find robotics companies that needed a web dev. I had to stick with it for a bit because either a bad match or in one case they withdrew the opening (I’m 90% sure they were about to hire me too)
My current company is ROS specific. It wouldn’t hurt you to learn ROS stuff as it’s quite popular.
My goal is to capture unfiltered thoughts in Obsidian. This is appealing to me because it's fundamentally just Markdown. It syncs across devices (iCloud for me, though any synced storage would work)
That said, most of the time it's just new tabs in VSCode. Most of the time I'm not saving them as documents. I've tried a couple of times to install plugins that support a "notes" feature, but none of them have ever really held my attention.
A bit adjacent, but I’ve spent some free time the last couple of weeks tearing down and rebuilding a cuckoo clock. I’ve been delighted learning the mechanics of the bellows, the bird, and just clock movements in general.
There’s a great value to curiosity, and I think it’s incredibly important that we nurture it in our society.
Many years ago Decipher (who made the Star Trek and Star Wars TCGs) rolled out a web platform for playing their games. It was the business model but with none of the advantages of the physical property. You would spend money on their platform to buy their digital cards, to play only there, and when you left the cards just disappeared into the void.
Have you spent any time looking at OpenCore Legacy? I briefly was using it on my 2014 13" MBP to install whatever the latest version-1 was. It worked well for a bit but I ran into an issue after an update. I bailed on it but learned later that it was a relatively easy fix. Might give some new feature support to you.
I really think this era of MBPs was the best. I'm kind of shocked how well my 2014 still works.
I've got a 2010 iMac that my kid uses running Sonoma (macOS 14) via OpenCore Legacy and it works great for him. I'm currently waiting on a wireless card to give him Bluetooth 4 so he can use Airdrop.
I've looked, but never played (this being my primary personal device, it's not something I want to have out of service).
I guess that's probably also why I feel like this is the wrong solution for me. I don't want to have to deal with issues on this laptop. If I pull a system update, I want it to install without a problem, automatically, overnight, and not require hours of debugging and reverting and then finding a fix a week later.
I appreciate the effort and skill that goes into making it, and if this was a less critical device for me it might well be the right solution.
Also, I agree re: peak MacBook. The keyboard is good, the ports are good, they're tough, and I really can't believe that the performance has been enough for over 10 years. It'll be a sad day when I move on.
> I don't want to have to deal with issues on this laptop. If I pull a system update, I want it to install without a problem, automatically, overnight, and not require hours of debugging and reverting and then finding a fix a week later.
This is why I never made the jump to Linux. Around 2017-2019 Apple's Laptops had gotten really bad. I was considering moving to Linux, but I've had several situations where I've run normal Ubunutu updates from Canonical and found myself unable to boot. I don't know if this is common, I don't think I was doing anything unusual (stock Ubuntu).
I went back to school at 37, and got my degree at 40 (2020). I don’t regret it, though it was very tough. My classes were almost all online, and I transferred a “Associates in general studies” from a community college (obtained in 2008).
Here are my thoughts:
1) You don’t have to study your career path. You will almost certainly make more money in software than as an EE. I do electronics as a hobby, and I’m pretty happy with it. I worked full time while taking two classes a term. You already have a career in software. I’m here to tell you: you probably won’t be learning much you don’t already know. I didn’t. Why do you want to go to school to study ME/EE? If you want it, go for it. But if you’re just wanting to complete college, play to your strengths.
2) School is expensive. I cheated by going to a church college that subsidizes tuition. I have since stopped being a church-goer. I’m still proud of myself for getting my degree.
3) My wife is going back to school in mid-forties. It’s not too late.
4) You’re younger than you think. If you’re not too tied down, tear up your life. You’ve got lots in front of you. I had a wife and a newborn (still have both) and a full time job.
5) US university programs strongly bias toward kids coming out of high school. They are a quagmire of bureaucracy. Ask lots of questions about the program, find out what you can skip, what you don’t need, etc. I managed to get out of an internship requirement due to my 15 years in the industry.
Good luck, and I’m proud of you. Education is a worthy goal.
> You already have a career in software. I’m here to tell you: you probably won’t be learning much you don’t already know. I didn’t.
Woah. Pump the brakes. Even without precisely knowing what area of the IT world OP is in professionally - I can guarantee there's a huge amount of knowledge in a proper CS degree that they don't have. Granted a lot of that might be theoretics, but it's all fundamental to computer science.
Just off the top of my head - it's highly doubtful that they have familiarity with any of the following topics (all of which are found in rigorously academic CS programs):
- Linear algebra (eigenvectors, vector spaces, least squares, etc.)
- Discrete maths (recurrence, graph theory, tree spanning, grammars, etc.)
And that doesn't even begin to cover graphics and computation, compilers, algorithms, operating systems, data structures, artificial intelligence, and on and on.
You can dispute how much practical value this might have for your average software dev - but OP will 100% learn a great deal from a BS/MS in Computer Science.
> I can guarantee there's a huge amount of knowledge in a proper CS degree that they don't have.
Idk, I don't buy it. I have a master in Chemistry, but ended up a software engineer 8+ years ago with no formal CS education.
Way after starting to work, I started digging in most CS topics and I'll just plainly say that: I know more about networking, OSs, math, programming languages, type systems, algorithms and ds, system design etc than fresh graduates I interview, let alone people that graduated ages ago.
Unless you've been living under a rock, most universities out there programs are public, lecture and notes are there, and there's an overabundance of excellent full courses on YouTube and simila.
The only thing that a degree tells me is that you went through a series of tests and passed them, tells me absolutely zero, nothing, about what you retained in years studying.
It's not surprising, in chemistry it was the same. There were many people that would ace all exams but literally forget stuff or not really understand it just few weeks after an exam.
Firstly, congratulations (seriously) on your efforts. Firstly for getting a degree in chemistry (not easy) and secondly for a rigorous approach to self-improvement.
I would however suggest that you are not a prototype for self-taught programmers, much less self-taught programmers with no other degree (and thus no exposure to academic rigor.)
Of course the OP might be as advanced as you are, but its fair to suggest they likely aren't.
Personally I learned to program as a child, and then did a comp sci degree. And I got a lot of value from that which I've used through my career.
Of course (these days) there are lots of resources online so the OP could learn everything he needs "self taught", but degree programs formalize this, and give you a degree at the end of it. (And formal degrees are still a valuable hiring filter.)
> I would however suggest that you are not a prototype for self-taught programmers
Twenty-five years ago this was bog standard. Most people who were programmers did not come from a computer science background. They were self-taught. What is so different today that they cannot do the same? If anything, the biggest difference is the "gates are higher", but the work is barely different.
I work in a field where most of my customers are self-taught, often (but not always) degrees in other fields. I can only use my experience as a reference, ymmv.
What ive noticed is that people have different strategies to learning. Most adopt a "just in time" approach. They learn only enough to complete the task at hand. There is very little curiosity in the bigger picture, or the fundamentals.
This is the opposite to the formal approach, which grounds the learning in theory.
can people learn the fundamentals in a self-taught way? Obviously yes. Do most people learn this way? Id suggest not.
The contrast is to students at college who are always asking "hey am I learning this? When will I use this?" It's not always obvious where they become important.
In my own career I was able to leverage my fundamentals training and translate that into value to those who just want to complete a task.
25 years ago computers were mostly interesting to "geeks", and those looking to program them were even more so (ok, that's really 30-35).
Yes, it started to shift 25 years ago already, but what has obviously changed significantly is that software development became a good paying job, which attracted even wider masses not caring about the fundamentals. There are certainly more self-taught programmers who dive into those fundamentals in absolute numbers, but relatively they are more of a minority. But that means that there are even more who do not care in absolute numbers.
You have a point I did not consider. Having studied advanced chemistry, math and physics as a chem master obviously taught me a lot how to approach CS.
There's that, but more than just how to approach a technical topic you put in the effort to lean to such a depth on your own. Most people will not bother (if they even know how in the first place).
Also it sounds to me as though you are fully capable of independent research. Even among those who hold masters degrees that's not guaranteed. A significant part of PhD programs is ensuring that students are capable of that.
I think you are more of an outlier than you realize.
You know more than fresh graduates, but fresh graduates don’t absorb 100% of the material being taught — more like 50% at best, and many promptly forget that knowledge after taking the final. As someone who went back to school after about five years in SWE industry, I did (and still am) learning things in CS classes.
Granted I did know a lot of the material already, and I do go to Berkeley which has a comprehensive CS program, so YMMV. My main point is to not compare your knowledge to fresh grads knowledge to determine what they are taught.
I hear this refrain quite a bit: "But what have YOU retained?" and it almost comes across as weirdly accusatory. I can't speak to everyone's experience, but since we're tossing out anecdotal evidence, I've also acted in the role of interviewing applicants for software engineering positions (granted this was over a decade ago). Occasionally we'd discuss CS topics just to get a feel for the applicant and most of the applicants with BS/MS in computer science knew their stuff.
I mean if you aren't retaining a majority of what you spent 4 damn years studying then what was the point? I don't claim to have an eidetic memory but I recall the theory/application of most of what I studied in university. A few months ago, I had to whip out the Taylor series for a particular problem and I pretty much hadn't touched the concept since taking Calc 2.
It also seems like you along with a number of people seem to be addressing a point that I never once made.
Once again I suppose I need to restate the original argument because basic logic apparently missed the cutoff.
The argument was not:
- something something the vast wealth of knowledge on the internet replaces the need for your stuffy ivory tower something something
- something something my horatio algers narrative elevates me beyond the filthy CS grad mugbloods something something
- something something but what did YOU RETAIN Leonard Shelby something something
The argument was that the OP would not LEARN ANYTHING NEW in the course of acquiring a formal degree since they've already started working professionally. If the OP got a job in frontend development (for example), it's highly unlikely that they've ever encountered any of the aforementioned subject material I mentioned.
That you N=1 spent your formative years poring over scrolls of the SICP and The Art of Computer Programming like you were preparing for your bar mitvah is not generalizable to the vast majority of people working in IT.
Do you perhaps mean "useful to them"? One of the most common complaints is that CS degrees include "useless" stuff. Based on that observation alone it's difficult to believe that OP will have encountered all the relevant material in the workplace.
But then OP said ME/EE. Surely you don't mean to suggest that working as a software developer will have covered that material to any significant degree?
Edit: Nevermind, I see we agree and I misunderstood you. I'll leave the comment though because the point stands.
My BSc degree taught lots of things that would be useful for an average software developer with some experience. MSc programs tend to be more research-oriented and thus less practical unless you work in some R&D niche that matches what you studied 1-to-1.
Practical BSc materials included other programming paradigms, mostly pretty advanced declarative and functional programming, equivalent to big chunks from CTM and a typical Haskell book. Also deep relational algebra and calculi, including query optimization, and low-level driver programming, concurrency models, and networking. Further to that, compiler construction, amounting to significant chunks of the Dragon Book, etc.
This is something you can self-study. But, obviously, an institution will provide good structure and credentials. Depending on the cost, it might make more or less sense. The OP might want to look at good EU universities where tuition is free for EU nationals and coursework is taught in English at BSc level.
I suppose it isn't entirely paradoxical, but I disliked the dragon book, even though I rather liked Hopcroft/Motwani/Ullman's (theoretical, non-compiler book) Automata Theory, Languages, and Computation. (Turing award winner) Ullman giveth and taketh away.
Purple dragon (Aho/Lam/Sethi/Ullman) is probably better than red (or green) dragon though, as it adds some interesting topics.
In an undergrad course, I'd probably prefer a simple book that uses recursive descent.
Yes, my undergrad school was dominated by some compiler researchers. We didn't cover it all, by any means, but we built lots of lexers, parsers, and interpreters. There was an elective that went through the rest of the book. Crafting Interpreters would have been a better textbook, but it wasn't available at the time.
I hear this all the time on HN. I am nearly a neckbeard at this point as a programmer. I have never once used any linear algebra in my career. Discrete math: Only a tiny bit, and mostly to pass HackerRank/LeetCode questions for interviews. Looking back, the highest impact (to me) undergraduate comp-sci course was intro to algorithms. You really use those over and over again, even if you are just "using the library" (vector/map/etc.). It helps to know what and how they do it, even if you cannot write it from scratch yourself.
While you haven't used linear algebra, someone working in MLE would probably find it useful to understand. Now I'm not saying you need to take a linear algebra class to understand matrix/vector operations, but it would be useful as it comes up.
When I did my degree I tried to do as many courses unrelated to the things you listed as possible.
I signed up for as many mechanical and electrical engineering courses as possible, plus control theory, VLSI design, FPGA design, robotics and optimization.
>And that doesn't even begin to cover graphics and computation, compilers, algorithms, operating systems, data structures, artificial intelligence, and on and on.
Maybe if you are attending top3 country schools, but for the rest all those topic you can get good or better knowledge on the internet
This is bog standard stuff for any school, not "top 3". Working in software doesn't mean you know jack shit about anything. I also notice calc 2 or 3 isn't included in the list.
What's your point? You can make that argument for almost any subject matter.
The discussion was whether or not OP would LEARN anything from a traditional Computer Science degree that they hadn't already encountered as a software dev. The answer is almost assuredly yes.
To circle back around, everyone learns differently. Some people prefer a more scholastic approach to learning with classes, labs, assignments, meeting in person, and engaging with professors. Others might be just as happy listening online to lecture after lecture from MIT OpenCourses. OP sounds like they'd prefer a more traditional pathway.
but OP will 100% learn a great deal from a BS/MS in Computer Science.
You missed one of the biggest points. OP want's to do a mechanical / electrical engineering degree. So most if not all of what you're saying goes straight out the window. Actual EEs with a degree tend to go into software because they can make more money, not using much of their degree except in some specialist roles.
That's not to say that they wouldn't learn the things you said they would learn in an actual CS degree. But it it's not what OP is talking about at all.
I say that as someone that does have a Bachelor and Master degree in Comp. Sci.
This is a really interesting answer, I'd like to ask some follow up questions.
1) I've heard this from a few people now. It's a bit demotivating (just because of paying off school loans from a job that makes less money is harder) but do you think software will always pay this highly? Or do you believe as one drops the other might also. I mention EE or CS because while I love the idea of EE, at the end of the day I want a degree for more opportunities.
2) I never thought to look into this, I'll definitely add it to my list to research.
3) You're right, I guess I just think of graduating near 40 and starting over in a new field and it's hard to think about.
4) This made me think a bit, because tearing up my life could mean a couple things. I don't have kids and I'm not married so I don't have many things tying me down. To me, this would mean going to college in my home country or somewhere near for cheaper. This is a huge move and would definitely tear up my life but I go back and forth about whether it is the best move for the future or not.
5) That's a really good way to put it. Even after mentioning my age and that I've been working and I'm currently working, they go through the questions you would ask someone outside of high school which is strange. They don't like to get too in depth and just want me to apply right away. I need to be more direct in my communication and ask the questions I want to ask.
Because most hiring managers now select "Bachelors Degree" in the minimum education drop-down filter and thereby exclude all of the other beneficial attributes that a prospective employee may have.
I have 25 years of enterprise web application development and I'm getting no progress in over a year of job searching.
I have an Associates degree. The web arrived at the same time I graduated high school and I hyperfixeated on everything internet. I remember when "Yahoo!" offered their index as a text file that would fit on a 1.44 floppy. I passed the CISSP on the first try at 100 questions. I architected an internal OAuth/OIDC SDK for one of the top tier ISPs.
It's becoming obvious to me that the four year degree is the only attribute I'm missing.
I have met and worked with as many talented non-degreed SWEs as degreed. I number of years back I had posted a dev position where I specifically left off any degree requirements only to find HR had “helpfully” added a degree requirement to the posting.
At the time unemployment was low and the candidates I was getting were crap (but all well educated). I checked the post and realized a large portion of talented engineers were being excluded. Fixed the post and found a great candidate in short order.
> "Yahoo!" offered their index as a text file that would fit on a 1.44 floppy
Are there still records of this somewhere? Can't find anything on Google. I don't remember this as I didn't exist but it sounds interesting to read about.
> I have 25 years of enterprise web application development and I'm getting no progress in over a year of job searching.
I don't want to be rude, but if in 25 years of working there isn't a long list of coworkers trying to lure you to the company they are at now it seems like you've never impressed your coworkers.
People with a network don't have trouble finding jobs, and the best network you can make is simply being a good developer to work with.
Completely agreed. I don't have a degree and have been gainfully employed in the field since I graduated high school in 2001. Only the first few positions were difficult to land interviews for since I didn't have work experience to fall back on either. Since then most of my new opportunities have come from others I have worked with who wanted to work with me again. I have also been placed a couple times via recruiters, but like anything it's difficult to find decent folks in that space to work with.
In my experience there is also a lot of recruiting going on at relevant user groups and code camp style events. Me giving talks on Node.js when it was a new technology and I wanted to force myself to do something outside of my comfort zone (public speaking) also got me a job. What I've not had to do is blindly submit my resume through HR portals and hope to make it through some opaque filtering process which I suspect is where a lot of the struggles come from.
To be clear, I was asking why OP wanted to study these specific subjects - not get a Bachelors in general.
I've gotten more than one job that required a bachelors before I had one. They almost always offer the "Or requisite/similar experience". I think most employers in the Software Development space understand there is a non-trivially-sized set of qualified developers who didn't choose that path.
It's important to say that evolution isn't versioned, and what we're observing isn't finished. We may be looking at an evolutionary dead-end. Which is to say that if eating the male is an evolutionary development, it might a poor one.
There is no logic to evolution. No decisions are being made. Evolution is reactive, and the surviving lineages may only be responding effectively to some of the external forces. Evolution doesn't happen at a species level, it happens at the individual level and has downstream effects on the species.
We're seeing evolution in action. Tragically, we (individually) won't be around long enough to observe the changes in another 100 or 200 or 1000 generations.
I wanted some amount of notoriety when I was younger. I wanted to do something important. Accomplish something that helped people. It was mostly notions of having done some really cool project that people would talk about.
I'm in my mid-40s and I appreciate now what I couldn't then: Any kind of attention, greatness, notoriety, etc is entirely fleeting. You will have 15 minutes of attention and unless you do another great thing the best you'll get is "what have you done lately?"
It sounds glib, but really you do need to become comfortable with yourself where you are. I don't even know if that's possible in youth, and I don't want to discourage people from chasing their dreams, but you set yourself up for a lot of self-inflicted misery otherwise.
So long as the research has a conclusion, it's not a failure. We learned something. There may be something to be said for whether or not the research is a worthy topic, but that's a different conversation.
Without some research the current President would probably not be healthy enough to be in office, clearly we have to reduce the risk of that happening again.
reply