Is it difficult or annoying to switch between windows and mac os?
Five years ago I would have suggested that an engineering major go with a Windows laptop. That's no longer the case. With modern OS virtualization, the options are completely different.
If you run Windows in a virtual machine, switching between operating systems is absolutely not an issue. I often need to run a Windows or other OS environment. I use VMWare Fusion which has a "unity" mode. In unity, all windows, both Mac and MS Windows, appear in the same Mac desktop environment. You can switch between applications just as you would if they were also coming from the same operating system.
The MacOS supports an environment called "Spaces", which is effectively isolated workspaces. You can drag an application window onto a new desktop and switch between desktops with a simple swipe on the trackpad. Very slick. I often run Windows 7 on one desktop, Windows 2008 R2 server in another and Solaris in another. If, for some reason, I want to collaborate between a Win7 and a Mac application without swapping desktops, I can just drag the appropriate Win7 app window onto the same desktop I'm using for the Mac app. This is far more complicated to explain than it is to do. It's pretty intuitive really.
Also, I think a lot of the programs are starting to come out with mac compatible software. If I could make it through a year or two with bootcamp, I would probably be happier in the long run. If anyone has any input on this I would appriciate it.
I think generally speaking your assumption is correct. Many more apps are starting to be released (or re-released) for MacOS. There are a number of scientific and engineering-oriented apps that have too small, too vertical markets to justify the expense of the developer coding for two operating systems. This is true for both Mac and Windows apps but for your specialty may be more the case with Windows apps. Virtualization eliminates that concern. Why not use the operating system you prefer and support the other(s) in a VM?
Also, I would really appriciate any suggestions on which PC's would be good for an engineering major.
You already named it.

A MacBook Pro
1 more question and I know it is pretty stupid but it is theoretical. How much of a waste would it be to buy a mac and only run windows on it? I know all of apples employees say that windows actually runs better on a mac, is this true? I wouldn't ever do this, but it may give me some more information.
I think, in reality, you'd never do this.
Virtualization is probably going to be a better option for you than Bootcamp. (Bootcamp isn't virtualization. It's a partitioning and driver support solution for Windows. With Bootcamp, your Mac runs EITHER MacOS or Windows but not both at the same time.) There are two prominent well-supported virtualization systems for the Mac:
VMWare Fusion and
Parallels. Both are very good and the two companies have, for years, leapfrogged each other in features. I use Fusion for a number of reasons, including the fact that I work a lot with their server and cloud virtualization solutions. Parallels is also a very good choice. There's even an open source virtualization solution now sponsored by Oracle called
Virtual Box.
Remember that you'll need an operating system installer for Windows, so factor that into your budget. Virtualized environments run very nearly as fast In Fusion and Parallels as they do native in Bootcamp or on a similar spec'd PC. They do share processor, disk and memory with the Mac though. Because of this, it's smarter to get more memory rather than less if you're going to run VMs. The MacBook Pro Retina has four processor cores and either 8 or 16GB of memory. In Fusion, I allocate one or two cores and 8GB to the VMs and leave the rest for MacOS.
The only exception I'd make on my recommendation to use a Mac and VMs rather than either Bootcamp or a WinTel laptop might be gaming. If you're a nut about a particular game, look into the Mac version of that game. You may decide you want to run it native in a Windows environment. In that case, you could reboot into Parallels from MacOS. It's worth noting that you can run BOTH Bootcamp and Virtualization. Both Fusion and Parallels can treat a Bootcamp partition as a virtual machine.