As was foretold, we've added advertisements to the forums! If you have questions, or if you encounter any bugs, please visit this thread: https://forums.penny-arcade.com/discussion/240191/forum-advertisement-faq-and-reports-thread/
Options

Learning C++ and Java

meatflowermeatflower Registered User regular
edited November 2006 in Help / Advice Forum
So I've decided to major in Computer Information Systems (or Science, or Information Technology, or one of the other million names for this degree). It will actually be Business Administration, with a concentration in CIS. So half business classes, half coding/network stuff. On to my point...

In about a year I'll be taking a CS course where I'll be learning some C++ in addition to whatever else they do in a lower division Computer Science class. After that I'll have a class specifically on C++ and then the semester after that on Java. So I'll be learning two programming languages in a 6-8 month span of time. I'll also be taking classes on Unix systems administration.

I'm wondering if I should start preparing for this stuff now, or blindly walk into the courses knowing nothing. My prior knowledge is some pretty standard HTML work, and a smattering of C#. While I found both interesting I really didn't have anything to apply them to at the time so I didn't spend much time learning them. My experience with *nix type stuff is also pretty basic. When I've had a flavor of linux running on my machine it was mostly for novelty and I would use the GUI almost exclusively over any command line work. I knew enough to get a MythTV box up and running but it was mostly due to great tutorials being available online.

Since I'm not familiar with learning tech related stuff in a formal setting (everything I know is self-taught) I don't know what they're expecting or if it's feasible to learn a programming language in that time with no prior experience or preparation.

Any advice would be appreciated.

archer_sig-2.jpg
meatflower on

Posts

  • Options
    I'd Fuck Chuck Lidell UpI'd Fuck Chuck Lidell Up Registered User regular
    edited November 2006
    I'd get familiar with C++ first, not neccessarilly too familiar, but get a good idea of it.

    then head to Java, they are hard classes and a good intro to them beforehand is never a bad thing

    I'd Fuck Chuck Lidell Up on
  • Options
    KismetKismet Registered User regular
    edited November 2006
    I started learning Object Oriented Programming in Java and then went to C++. The basics are similiar enough that it won't really matter much which you learn first. (learning should be concept based anyway, so moving to another language is just a matter of syntax really, and whatever other caveats there may be to a certain language).

    Since the earliest class is in C++, I'd just start with that. If you're going to have a light load, I doubt that you'll need any prep work. Getting some practice in won't necessarily hurt, though it could make the classes pretty boring if you already know it all before you get there.

    Any intro. to programming class (CS 1) will almost always assume a very minimum level of skill to begin with.(Usually no experience)

    edit - I misread your post... if you're taking a class before the one on C++, you don't need any prep work. It will likely be the most boring class you will take, persevere.

    Also, do you happen to know the actual names of the courses? I'm guessing It's CS1 and 2 for the C++ and Data Structures for Java, but I'm curious.

    Kismet on
  • Options
    CentipeedCentipeed Registered User regular
    edited November 2006
    I'm learning Java at the moment for my Information Systems course, and everyone is basically having problems except for me.

    I think the reason is that a sound knowledge of how computer programs are put together is very useful (For Loops, If Statements, how programs flow. That sort of thing). If you know that stuff, you can just apply it to the java syntax and you're good to go.

    One thing I didn't know, however, was how the whole object orientated thing worked. I read quite a few guides trying to explain object orientated programming to me, and they helped... Somewhat.

    What actually happened was that the guides gave me some idea, but then when I actually started programming in Java it all clicked into place, so now 8 weeks into Java programming (A couple of lectures a week), I pretty much know how object orientated programming flows.

    I reckon a solid knowledge of standard programming practices (Like I said, loops, if statements, that sort of thing) will help to no end, as well as an understanding of how OO languages work. Other than that, I would leave it until you're in the lab classes before you start learning the language itself.

    Centipeed on
  • Options
    meatflowermeatflower Registered User regular
    edited November 2006
    Kismet wrote:
    Also, do you happen to know the actual names of the courses? I'm guessing It's CS1 and 2 for the C++ and Data Structures for Java, but I'm curious.

    Well after taking care of the math pre-req's for it I'll take this:

    CS 2 FUNDAMENTALS OF COMPUTER SCIENCE 5 Units
    Prerequisite(s): Math 9. Introduction to the science of computers, algorithms, computer organization, flowchart design, computing systems, programming concepts, data structures, non-numerical applications, introductory numerical methods; For Computer Science, Computer Engineering, Mathematics, and Science majors but open to all qualified students.

    Then I'll take:

    CIS 14 C++ PROGRAMMING 3 Units
    Prerequisite(s): CS 2; or CIS 10 and one of the following: CS 10, CIS36, CIS 64, CIS 66, CIS 134. Foundations of C and C++. Operators, functions, arrays, pointers, structures, unions, classes, C++ data types, polymorphism, inheritance, encapsulation, virtual functions, templates, file processing, control structures, and an emphasis on object oriented program design.

    and then:

    CIS 16 JAVA PROGRAMMING 3 Units
    Prerequisite(s): CS 2;or CIS 10 AND one of the following: CS 10, CS 12, CS 43, CIS 14, CIS 34, CIS 36, CIS 64, CIS 66. Foundations of the Java language: Classes, methods, operators, encapsulation, polymorphism, inheritance, dynamic binding, file processing, control structures, function overloading, use of AWT, creation and use of applets in Internet applications, and an emphasis on object oriented program design.

    So no CS 1 since I'm not a CS major. I'll be taking CIS 10 as my "intro computers" class which will be more focused on "Computer concepts including hardware, software, programming principles, applications and ethics."

    So yeah, that's it. I guess CS 2 won't have any C++.

    meatflower on
    archer_sig-2.jpg
  • Options
    vonPoonBurGervonPoonBurGer Registered User regular
    edited November 2006
    meatflower wrote:
    My prior knowledge is some pretty standard HTML work, and a smattering of C#. While I found both interesting I really didn't have anything to apply them to at the time so I didn't spend much time learning them. My experience with *nix type stuff is also pretty basic. When I've had a flavor of linux running on my machine it was mostly for novelty and I would use the GUI almost exclusively over any command line work. I knew enough to get a MythTV box up and running but it was mostly due to great tutorials being available online.
    You may have the same problem trying to teach yourself C++ and Java, because again you don't have anything to apply them to. I'd say either wait for the courses where you'll have prepackaged assignments to work on, or find a personal project that you could apply either language to in the meantime.
    meatflower wrote:
    Since I'm not familiar with learning tech related stuff in a formal setting (everything I know is self-taught) I don't know what they're expecting or if it's feasible to learn a programming language in that time with no prior experience or preparation.
    It's not vastly different from nontechnical courses. Syllabus, lesson plans, assignments, homework, projects, exams. The major difference with most coding courses is that success really depends a lot on you keeping up with the material. Is not like, say, a history course, where you could miss a lecture and know most of the material except for this one gap in the middle. By and large, with a C++ or Java course a lot of what you learn later on is going to build on the basic stuff you learned earlier. So, my best advice would probably be to make sure you keep up with the assignments, make sure you understand the material, and make sure you get help if you're falling behind. Procrastination and/or lack of effort will burn you a lot harder in a CS course than it will in many other courses (trust me on this one :( ).

    vonPoonBurGer on
    Xbox Live:vonPoon | PSN: vonPoon | Steam: vonPoonBurGer
  • Options
    Mr.FragBaitMr.FragBait Registered User regular
    edited November 2006
    I think it really comes down to how well you grasp how a computer works and your understanding of logic. I started learning my first programming languages this semester. I did both Java and C at the same time, which I wouldn't recommend if you're taking other difficult classes. Since I've completed Calculus I to Differential Equations, the math involved was dead simple. And I had an easy time grasping logic, and how you need to break a problem down. Plus I had a minimum load for full time, so I wasn't overworked.
    Some of my classmates are not so lucky. Some just screw around with friends and wait till the last minute to complete assignments, not really learning anything. Others just didn't seem to get how everything worked and just got frustrated trying to complete assignments. Realize that programming classes are less about teaching you specific ways to code, but more about teaching you the proper forms for writing a program and the ways to solve a problem. The more time you put into learning a language, the better off you are.

    To go back to your original question:Yes, if you have the time, a little practice in C and Java would help you greatly. Learning the basics of these languages, like primitive types, how to debug, and a little understanding of Java's Object Oriented design would make your life a lot easier.
    There are plenty of C tutorials, and Java tutorials out there. Getting compilers and stuff installed and working is another issue, but not difficult. You'd want to work with simple text editors like PSPad or Notepad++ and avoid the complexities of a full IDE, like Eclipse. Just learn how variables and things work and save stuff like arrays for the instructor to explain. Just don't get too entrenched in how you write your code, the classes you take will stress the importance of writing clean, readable code, and will teach you how to write it. Java will probably give you more trouble than C, because understanding how Objects work seems to trouble most starting programmers. For how Java handles Objects and Primitives, I found this site most useful.

    Mr.FragBait on
  • Options
    JaninJanin Registered User regular
    edited November 2006
    If there's any way for you to avoid learning Java, I would look into it. Java and C# are probably the most pointless languages in the world that somehow manage to get used widely.

    You'll love the C++ FAQ. Although it deals with C++, many of its concepts apply to programming in general. Also, How to debug.

    Janin on
    [SIGPIC][/SIGPIC]
  • Options
    SlungsolowSlungsolow Registered User, ClubPA regular
    edited November 2006
    jmillikin wrote:
    If there's any way for you to avoid learning Java, I would look into it. Java and C# are probably the most pointless languages in the world that somehow manage to get used widely.

    what a wonderfully contradictory statement.

    you should learn java and c# because knowing them is a marketable skill - which means it pays the bills.

    Slungsolow on
    fuck your forums, fuck your administrator and fuck dynagrip for getting away with the long troll.
  • Options
    AndorienAndorien Registered User regular
    edited November 2006
    I knew the basics of C++ before I took classes for it, and it helped me get on my way quickly. I could focus on the more advanced concepts without having to worry about memorizing the basics.

    This site should help you out.

    Andorien on
  • Options
    JaninJanin Registered User regular
    edited November 2006
    Slungsolow wrote:
    jmillikin wrote:
    If there's any way for you to avoid learning Java, I would look into it. Java and C# are probably the most pointless languages in the world that somehow manage to get used widely.

    what a wonderfully contradictory statement.

    you should learn java and c# because knowing them is a marketable skill - which means it pays the bills.

    There are dozens of languages that can pay the bills, so that's not an indication of quality or ease of learning.

    Janin on
    [SIGPIC][/SIGPIC]
  • Options
    meatflowermeatflower Registered User regular
    edited November 2006
    No, I can't avoid either. I have to take both CIS 14 and 16, which are C++ and Java respectively. While some people may think Java is useless (which is a point of contention), at least I don't have to take some of the other CIS courses which include COBALT, Basic, and Visual Basic.

    Thanks for all the tips guys. Definitely some preparation I can do and the links posted here have given me some good starting points. I'll bookmark this thread and come back to it in about a year when I'll actually be taking the courses.

    meatflower on
    archer_sig-2.jpg
  • Options
    SlungsolowSlungsolow Registered User, ClubPA regular
    edited November 2006
    jmillikin wrote:
    Slungsolow wrote:
    jmillikin wrote:
    If there's any way for you to avoid learning Java, I would look into it. Java and C# are probably the most pointless languages in the world that somehow manage to get used widely.

    what a wonderfully contradictory statement.

    you should learn java and c# because knowing them is a marketable skill - which means it pays the bills.

    There are dozens of languages that can pay the bills, so that's not an indication of quality or ease of learning.

    They aren't pointless. Don't come in here and spew opinionated garbage like that. Ease of learning also has nothing to do with it. The fact that they are currently in use, and will be in use for some time should tell you that learning the language will give you advantages in the job market.

    Java has been around for quite a long time, and is obviously not going away. C# itself is young, but the .net platform is improving.

    Slungsolow on
    fuck your forums, fuck your administrator and fuck dynagrip for getting away with the long troll.
  • Options
    japanjapan Registered User regular
    edited November 2006
    I linked to this site in the last "help me learn to code" thread, as it has a series of (freely distributable) books called "How to think like a Computer Scientist" in variations for Python, C++ and Java.

    The first six chapters of all the books are the same, save for the finer points of syntax, which is significant because (like Kismet said a few posts in) the important thing is to pick up the concepts.

    So, since you're just looking to give yourself an introduction, pick either and have a play around. If you can get a good grasp of how to approach a problem in your head, you're halfway there.

    japan on
  • Options
    SpackleSpackle Registered User regular
    edited November 2006
    Not sure if it has been said already but, once you have a solid grasp on coding concepts, how the computer utilizes the code, algorithims, etc, the language you use just becomes the tool.

    Basically, it's just different syntax to solve problems. As long as you know how do it, it's just a matter of figuring out the correct sequence of characters to actually do it.

    Writing coding isn't the hard part, thinking up the best algorithim or method is what will provide the challenge.

    Spackle on
    Taco Bell does win the franchise war according to the tome of knowledge that is Demolition Man. However, I've watched Demolition Man more then a few times and never once did I see WoW. In conclusion Taco Bell has more lasting power then WoW.
    D&D Metal Thread: HERE
  • Options
    taerictaeric Registered User, ClubPA regular
    edited November 2006
    Also, if you are doing this with a mind to be marketable, do not forget to pay attention to all of the frameworks out there. Even if you are doing this just for school, it is sometimes very worthwhile to see how other people have implemented certain things.

    All that said, I can really only recommend Java frameworks, as I don't know that many others. Anything by Apache is usually well liked. As are JBoss and Hibernate.

    taeric on
Sign In or Register to comment.