<p>I'm currently a high school junior interested in pursuing a degree in computer engineering. However, I was worried about possibly being disadvantaged: I've never done any type of programming before (my high school doesn't offer classes, but I could probably teach myself if needed), and I have a limited knowledge about hardware. My question is, should I try to learn these basics on my own before going to college, or does it even matter? Do most schools teach the basics or will I have to play catch-up?</p>
<p>Also, if I do need to do some prep, what books/websites would you recommend for beginners?
Any input would be appreciated.</p>
<p>You should check out this site: [Online</a> School Classroom - Java A, Java AB, C++, Visual Basic, Multimedia](<a href=“http://www.onlineschoolclassroom.com/]Online”>http://www.onlineschoolclassroom.com/) I’m taking C++ there and its pretty easy, but you are kinda learning on your own and talk to them if you have issues.</p>
<p>If you can learn any object-oriented programming language (Java, C, C++, C#, PHP even), that might be the best thing you can do. Once you learn the basics of programming in general through one of these languages, you can learn any of them with a bit more studying on syntax. This will probably help you the most.</p>
<p>Also, google some topics about how computers actually work, down to the motherboard and machine code, etc. You could tinker around and build some electronics, since CompEng is pretty close to Electrical. Google will be your best friend when doing online research. You don’t need any books, the internet has vast amounts of resources that you can use to teach yourself all of these things.</p>
<p>Even if you don’t know the basics you shouldn’t have to play catch up. You’ll learn what you need to once you start in the program. Of course knowing some of the basics before you start would make it a little easier.</p>
<p>Introduction to Computing Systems by Patt and Patel is a good introduction to programming.</p>
<p>Pros:</p>
<p>It’s a very good text for a beginner–it is very thorough and starts from the basics.</p>
<p>Focuses on topics that are relevant for a future computer engineering student. </p>
<p>Cons: </p>
<p>It’s a textbook. It’s pricey. If you somehow have access to a college library, you may be able to check it out there, or you can try to buy it used online. </p>
<p>The programs you’ll practice programming with from the book won’t be super-cool–they’ll be pretty basic. The book teaches assembly and C programming. You don’t get a lot of stuff for free with these languages.</p>