I really need help, thank you very much.
You NEED that theory stuff. If you don't get it now, it will stunt your growth and will limit how good you'll get at your craft (mainly because you'll keep making rookie mistakes for the rest of your life because you won't understand the theory behind what you're doing).
Quitting something just because it's hard is a very bad habit to get into. All it does is keep you on the bottom rung for the rest of your life. The good things are hard to get. That never changes no matter your age or station in life.
If you really want to do well in life, start researching companies now, while you're still in school. Find out what they're doing. Find out who they're looking for. Get contacts within those companies and talk to them. Build up a contact network. It's WHO you know that gets you in the door, and WHAT you know that keeps you going.
Thank you very much for researching companies advice, it's a very good advice, I will start doing that.
But it doesn't stop there. You also need to have a solid understanding of at least one level below where you're working at (and preferably many levels). I'll relate a small example:
When I was working at a bank, all of our software was written in high level languages (mostly COBOL, Java, Python, and PERL). You'd figure that there's no need to understand CPU architecture, right? WRONG.
We started getting reports that our web app (for funds transfers) was crashing (not the regular Java crash, where the app keeps going; the hard crash where the entire web app goes down and has to be restarted).
Needless to say this was costing us a lot of money in lost business. All we had was a Java crash report with a stack trace that went into a JNI call. At this point, it's outside of Java, so the trail ran cold. Or did it?
One nice thing about Java crash reports is that they include a memory dump of the stack area, as well as a dump of the CPU registers. I know software and hardware top-to-bottom, from transistors to logic gates, to CPUs & machine language, through the BIOS, kernel, OS, libraries, all the way to the application level. It wasn't that difficult to trace back through the stack in the memory dump, disassemble the shared library that JNI was calling (a library for secure thumbprint recognition), and use the stack offsets to track execution right up to the memcpy() call that was being passed a NULL pointer (the thumbprint recognizer code returned NULL if the scan was incomplete, and the the library wasn't sanity checking the result before making a copy of the scan buffer). I was able to turn the library vendor's story around from "It's a problem on your side" to "We'll have a fix out for you in a couple of days".
I was the ONLY person in the company capable of doing this, simply because I paid attention in college. The knowledge I leveraged to fix the problem was seen as pure magic by other engineers because they didn't understand the theory and lacked even a way to ask the right questions, let alone answer them. Finding the answer is easy; It's finding the question that's hard.
So yeah, you can skip college and live a life of mediocrity. It pays pretty good, too. But you'll always be on the bottom rung. You'll be the guy who gets work in good times, and then gets laid off in bad times. When the market's hot (like it is now), companies tend to get driven to desperation, taking any programmer with a pulse. And then the bubble bursts, leaving all these now-jobless mediocre programmers asking "Why me?" when it's really their own fault.
If you're serious about programming, you'll take the time to learn. The best programmers never stop learning new things, and never stop reading new books. College is merely the beginning of learning & knowledge.
Good work requires focus. Whether you can work and handle school at the same time also depends on your course load. If you are spending 70 hours a week on classes, an extra 40 hours a week (though not impossible) might not be worth a decrease in performance in both activities.
I worked full time in college from the time I was 20 until I was 23. Work was 8-5, classes from 5ish to 8ish, hung out with friends afterwards.
But if I were in your shoes, I would want to do both. So I would schedule next semester classes to be in the evenings OR I would strike up a deal with the new employer to change my hours around slightly.
What are you life goals, what do you want eventually do as a career? What don't you like about college (can you change programs/courses)?
You have lots of options, you should think about this a bit more, don't just take the job because its been offered to you.
Tell them no way, you are committed to earning a degree. Higher education is valuable to you, so it's part time or no time. Do not be apologetic or sheepish. Do not blather on with explanations. Leave a silence for them to fill with compromise. If they truly like you, or if they are desperate for a warm body, they will likely compromise on part time or summer work.
Besides, people who are self-taught are always treated with extra suspicion during the selection, interview and the trialing process compared to those with a proper degree. And quite rightfully at that. If you have Masters in Comp.Sci., it's given that you know reverse polish notation. But if you picked it all up by yourself, you could've missed this bit and it could complicate my life as your colleague or boss further down the road.
So, yeah, educate yourself properly first. The jobs will follow.
But don't do it just because someone else tells you to (especially me). Do what you feel is right.
The second, is that it gives you a higher safety net if/when you find yourself off track in the future. You won't have to worry as much about finding employment just to get by.
I used to make good money as a PHP developer 10 years ago. These days I have been priced out of the PHP job market because I'm competing with every college dropout that's willing to do my job for a lot less.