I can't say I disagree. From my own experience as an undergrad, there were plenty of courses I took that were either excruciatingly difficult, mind-numbingly boring, felt completely useless, or some combination of all three.
In my first few years as an undergrad I had a bad attitude about school, and my grades reflected it. In my case changing majors wasn't an option, I guess I was fortunate because I knew that whatever I ended up doing post-college (with or without a degree) it would have something to do with computers, so I never considered it. But there were many occasions were I considered dropping out or "taking some time off." It was the beginning of the dot-com boom, and a few of my friends had already given up on school for Silicon Valley, Redmond, or their own startups.
I got lucky when I landed an internship at a local software shop. It was my first exposure to a large group of professional engineers, doing professional engineering in a professional engineering environment. As a programmer, I learned that "raw skill" certainly matters, but it only gets you so far. Yes, there are fundamental theories and surveys of techniques that you're forced to learn in college that you could pick up on your own, but what I observed was that these people thought differently than I did. They had a way of approaching problems that was methodical, structured, and practiced. I'm not talking about software engineering processes or anything like that--their brains functioned in a way that mine did not.
And that was the turning point. I realized that college was not about being able to solve triple integrals or Laplace transformations, it was about training your brain to solve complex problems. To rewire your neurons to study problems in an ordered manner. When I began to approach my classes this way, it got easier. I started putting in the hours, and my grades improved.
Not everyone is fortunate enough to have a good internship experience, or see their profession that they are studying for up close before they graduate. These slots are competitive and space is limited. To the article I referenced above, I would challenge industry to create more internships.
To students that are struggling through their first few years as an engineering undergrad: it gets better, trust me. Courses become more relevant in your junior and senior years. But also remember there's nothing stopping you from reading ahead or practicing your trade in advance of these courses. Find people to collaborate with, or stay up late working on your own projects. (You can sleep when you graduate). Stick it out. Engineering is very rewarding.