Having problems registering on Coin Return? Please email support@coin-return.org, and include your PA username and PIN.
For those who don't know, forums.penny-arcade.com will be closing soon. However, we're doing the same kind of stuff over at coin-return.org with (almost) all the same faces! Please do feel welcome to join us.
For those who don't know, forums.penny-arcade.com will be closing soon. However, we're doing the same kind of stuff over at coin-return.org with (almost) all the same faces! Please do feel welcome to join us.
For those who don't know, forums.penny-arcade.com will be closing soon. However, we're doing the same kind of stuff over at coin-return.org with (almost) all the same faces! Please do feel welcome to join us.
For those who don't know, forums.penny-arcade.com will be closing soon. However, we're doing the same kind of stuff over at coin-return.org with (almost) all the same faces! Please do feel welcome to join us.
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.
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.
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.
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++.
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.
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 ).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Posts
then head to Java, they are hard classes and a good intro to them beforehand is never a bad thing
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.
Meet Barack Obama
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.
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++.
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
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.
You'll love the C++ FAQ. Although it deals with C++, many of its concepts apply to programming in general. Also, How to debug.
what a wonderfully contradictory statement.
you should learn java and c# because knowing them is a marketable skill - which means it pays the bills.
This site should help you out.
There are dozens of languages that can pay the bills, so that's not an indication of quality or ease of learning.
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.
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.
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.
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.
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.