What do you need forComputer Science??

<p>Hey guys, I am very interesting in computer science and engineering in general. I have taken ap comp sci A in my school and did up to lesson A22. </p>

<p><a href="http://www.howard.k12.md.us/rhhs/helloworld/"&gt;http://www.howard.k12.md.us/rhhs/helloworld/&lt;/a&gt;&lt;/p>

<p>Can anyone please tell me what can I do thats engineering related such as building a pc, learning about microprocessors, wafers, or like networking and ip routing and setting up routers. Also what order should I learn this stuff in before I enter college. I really what to learn this stuff because it interets me SOOO much . Can someone please tell.</p>

<p>Anyone has any feedback?? I understand its up to me of what I want to learn but I just want to hear from others on how they would do it.</p>

<p>Undergraduate CS programs don’t expect entering students to know about things like microprocessors or routers or building a PC. They’ll teach you about microprocessors and networks in college. It’s unlikely you’ll have to build a PC.</p>

<p>The best thing you can do is practice your programming. Finish that series of lessons in the link you posted. Maybe pick up a book on Python, then type in and run all the programs.</p>

<p>Also, the more math you know going into college, the better. I personally think math is overstressed in CS, but there’s no way around the fact that you’ll have to take a lot of math classes to get a CS or engineering degree.</p>

<p>Practice and write computer programs (I recommend using languages C, Python and a functional language e.g. Haskell, or even LISP like they do in <a href=“http://mitpress.mit.edu/sicp/[/url]”>http://mitpress.mit.edu/sicp/&lt;/a&gt;, to start. You might also want to have a look at Java/C#, Google Go or Vala just to know what they’re about. You may also want to look at JavaScript/CoffeeScript, if web programming interests you at all), start studying the first year mathematics, pick an algorithm book and preferably read it, read about science and technology that interests you, start following computer science related news sites or journals and try to figure out stuff that interests you (what kind of stuff you’d like to specialize in?), learn what Stack Overflow and Stack Exchange is, learn what Google Search is and how to use it efficiently.</p>

<p>Just noticed that you had already gone through a Java course, good. That probably covered some the basics for object-oriented programming and enables you to write computer programs. You might want to supplement that with learning how to use Java Swing (Qt Jambi would be a good choice as well), the default Java GUI library, so you get an idea of how to write programs with graphical user interfaces and “event-driven programming”, given that you’ve already got into the Java world.</p>

<p>Now, from a computer science perspective, widen your perspective to other languages that I mentioned earlier. Learn what they’re about and why they are. Java is a poorly designed language (from a computer science perspective, learn why it’s so :wink: ), even if it’s very popular.</p>

<p>Thank you so much for all of your responses. I will definetely keep everything you guys said in mind and learn more languages and maybe try web designing. I have also learned GUI, dcompressing and compressing files, android apps, and loading and reading bitmap files. Now I think I will widen my perspective on computer science and learn C and python possibly. Thank you again for the responses. I have also dine events such as mouse events and buttons, sliders, etc.</p>

<p>Start studying C.</p>

<p>Honestly, once you learn 1-2 languages (I recommend C++ and Java) and you understand the theory (a good book/class will brief you on this), the rest comes quite easily. You’re probably best off learning how to program by doing a real project since you already know Java.</p>

<p>After a while, you can master a language in just a few days. They really do not differ too much fundamentally; there are different classes of languages but number theory is number theory, logic is logic, and memory is memory. The rest is just how to use them to make something useful.</p>

<p>Yeah but read this article:
[What</a> if I went to a Java school Joel? | Thinking Digitally](<a href=“http://thinkingdigitally.com/archive/what-if-i-went-to-a-java-school-joel/]What”>http://thinkingdigitally.com/archive/what-if-i-went-to-a-java-school-joel/)</p>

<p>Yeah, I’m no fan of starting with Java. It’s a pretty nice language for writing GUIs and minimizing compatibility issues, but it is not the right language for teaching fundamental CS issues. I’d recommend C++ over C though; it’s a more reasonable language.</p>

<p>Either way, you won’t really understand programming until you actually start writing real code for a real purpose. So start learning to do that.</p>

<p>NeoDymium: I disagree that it only takes a few days to master a language after you’ve learned 1-2 languages. Maybe it only takes a few days to learn the syntax; it takes a lot longer to learn idioms and best practices. It does no good for a Java programmer to learn Python and then program as if they’re still using Java.</p>

<hr>

<p>C is worth learning, but I honestly think its utility is going to be less and less in the coming years (for most programmers), especially if languages like Go take off.</p>

<p>On that note, it’s good to get exposure to a wide variety of languages (procedural, functional, object-oriented, dynamically typed, statically typed, strongly typed, weakly typed…the list goes on). A good programmer isn’t defined by the languages they know; they should be able to learn new languages when necessary.</p>

<p>

My mistake if I wasn’t clear. This was actually 2 separate points.

  1. Once you’ve learned the first two, there is a diminishing marginal utility in learning more in a row.
  2. Once you’ve been around (few years experience, with a good grasp on a fair number of languages), it doesn’t take more than a few days to learn a new one.</p>

<p>Fair enough; I thought you were saying that a new-ish programmer could easily master new languages. I agree with both of the points you just laid out.</p>

<p>None of those are very useful to CS.</p>

<p>Data structures, discrete mathematics, and algorithms matter.</p>

<p>Programming languages are tools. All Turing-complete languages can in theory describe the same computations.</p>

<p>What makes a language reasonable though is:
-is it easy to reason about?
-is it as easy to use as possible? Can you spend as little time as possible writing the code?
-does it have necessary libraries or are they easy to create?
-does its paradigm, expressiveness and type system lend itself to the type of computations that you’re doing?
-is it easy to write concurrent programs?
-and only last, is it fast enough.</p>

<p>The point of C is that C compilers are available almost for every type of device and operating system and that C serves as an intermediate language for many modern high-level languages e.g. Python and Haskell. Thus one can leverage existing C libraries as well as extend time or memory critical parts to C.</p>

<p>blahblah9393: I don’t think it’s really worth learning those topics before starting a CS program. It’s better to become familiar with programming.</p>

<p>Hey bobby.</p>

<p>I saw the message you sent me. Unfortunately, I can’t reply since I don’t have enough posts for a private msg. Please sent me your email and I’ll give you more information about transferring. </p>

<p>Pepper</p>

<p>I recommended C for several reasons:</p>

<p>-if C is too hard for you to learn as your first language, you shouldn’t be in CS so it tells you quickly if you’re wasting your time or not. It was my first language and I had no problems understanding what I was learning.
-It teaches about memory, pointers, and bit manipulation in an easy way
-It’s widely supported with loads of free resources online.</p>

<p>Woow!! Thank you so MUCH for all the replies. I read each and every one of them and I saw a common trend which is to learn C language. I will definitely learn this language as it might be mote understandable because I already know java. I also read the article you showed me TomServo and the point seemed pretty clear but it sorta scared me from that one quote I saw about pointers :p. Btw do you guys know any good books to read about data structures or anything of programming in general. Maybe even pointers. Thank you so much ones again, I am really glad that I have somewhere to go where people can give me some guidance :).</p>

<p>[Introduction</a> to Algorithms: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: 9780262033848: Amazon.com: Books](<a href=“http://www.amazon.com/books/dp/0262033844]Introduction”>http://www.amazon.com/books/dp/0262033844) This is the standard book on data structures and algorithms. You won’t understand a thing; you’re better off learning it when you get to the class on that. In the meantime, learn C or C++ and start doing projects.</p>

<p>The general rule on pointers is “don’t use them unless they are part of a very well tested piece of code.” The worst kind of errors come from directly modifying computer memory, and that’s what pointers do. Java automatically cleans them up for you; C and C++ lets you leave dangling fragments of memory forever or override unrelated data if you aren’t careful.</p>