Page 1 of 1

College level programming languages

PostPosted:Sun Jan 15, 2012 2:36 pm
by Akimoto
I have a question. I am considering taking a course learning programming and visual design (to make pretty looking programs and what-not).

Which programming language would be ideal to learn "first"?
I have gotten several suggestions that I should begin with C++ (Java + C# mix).

Any suggestions? 8)

PostPosted:Sun Jan 15, 2012 4:09 pm
by Zabuza
That's a question for Jawfy.

PostPosted:Sun Jan 15, 2012 8:19 pm
by Akimoto
Yeah, but Jawfin can't be everywhere at the same time - hehe

PostPosted:Mon Jan 16, 2012 12:05 am
by jawfin
Java

PostPosted:Mon Jan 16, 2012 7:30 am
by Arcanine
Jawfin wrote:Java
i think matlab is far better than java because it has more fun :)

PostPosted:Mon Jan 16, 2012 10:24 am
by jawfin
Allow me to shoot down what Growli just said. It would be like recommending Fortran. As Aki is asking for advice on what programming language to learn at college, and let me look around and check - I'm pretty sure I am the only one qualified to answer this question.

Java is highly structured. It is a procedural language which is best for any learner; only an insane person would suggest Prolog, Smalltalk, LISP, or say, Matlab, as an introductory language. I can say this as I know these languages.

Java is also object oriented, but you need not know about its OO interface until you are ready for it. It has a high level of abstraction within its design.

Java is also platform independent. This is due to it running with a Just In Time compiler within a Virtual Machine. It has a higher overhead for this, but that's nearly compensated by its memory management and Garbage Collector. Just don't use it for real-time critical situations (like guiding rockets etc) - any work like that is written in raw assembler. Again, only a fool would recommend learning assembly first, and again I am highly familiar with this language for the 80x86 processors (which decent hacker isn't?).

In Java variables are declared as methods are, making them interchangeable. Even operators aren't really used in that comparisons are done via the object's methods - thus again by inheritance the object can be changed without affecting the other objects that interface with it, or even its descendants.

Java natively supports multiple threading and synchronizing and even semaphore thread management if desired, and yet all this is hidden from the novice.

It has masses of supported libraries for handling arrays, maps, linked lists so that its lack of dynamic memory management (unavoidable for being JIT and platform interdependent) is well compensated.

I'm guessing Growli was trolling my post, so I guess my one word answer was not sufficient; I hope this makes up for that.

PostPosted:Mon Jan 16, 2012 10:50 am
by Arcanine
no no of course not,i was just telling my opinion because i have experienced java and matlab and i think Matlab is easier to learn,but java is complicated.

i am sorry if i offended you jawfin,you know i dont do that =/

PostPosted:Mon Jan 16, 2012 11:31 am
by jawfin
In my opinion Matlab is barely a language.
It appears that opinions differ: -
http://stackoverflow.com/questions/6940 ... g-language
But nevertheless, its a script designed to within a highly constrained environment. I'd also consider that if you find Matlab simple it is possible you aren't doing it right! Nevertheless, the idea of going to college is to learn what you cannot by yourself - that you have trouble with Java and not Matlab is within itself proof to do Java; quod erat demonstrandum.

PostPosted:Mon Jan 16, 2012 2:16 pm
by Akimoto
Thank you a lot for your input on this. It seems I will head towards the Computer Science education.

Doing some research, it seems I will be working mostly in C# - and people advice me to avoid Java (seeing how MineCraft runs, I can understand why...!!)


Here is a google-translated description of what I will learn:

Computer Science program at Narvik University College provides a strong background as a computer engineer, but offers also specialization within the time relevant disciplines

- Internet and distributed systems
- Game design and programming

Indentations are at the top of a computer engineering education with classical subjects.

Common topics for both depressions are Basic Programming, Programming Technique 1 and 2, Linux and service running, Programming in C #, Algorithms, Databases and Web applications, Data Communications and Security, Systems and Computer Graphics.

For game design and programming is the 3D modeling, Game Design and Game Programming with the project.
Electives in the 2 and 3 class allows you to put your own profile on the program.
After reading this, what programming language would you suggest I learn at home first? ><

PostPosted:Mon Jan 16, 2012 9:23 pm
by jawfin
The point of view I am angling for is you don't learn a language specifically to work in it, but to understand how programming works. Learning C first (any variant) is not recommended due to its lax structuring allows for bad code to run.

As a comparison, say you wanted to be a truck driver, you wouldn't go looking at articulated vehicles if you don't even know how to drive. First, it doesn't hurt to know how to ride a bicycle (like scripting and c-shell), but you need to learn to drive a car. That would be either Pascal, Modula 2, or Java. In my opinion this is a requirement. In a highly controlled training environment you could learn C first, much like you could learn to drive a truck and never stepped foot in a car.

Finally, the language you learn at home is, DON'T. All you will accomplish is a bunch of bad habits which then will hopefully become untaught.

PostPosted:Tue Jan 17, 2012 3:06 am
by Necros
I have to second my buddy Jawfeh here and say Java. It's a very simple language to get a hold of and gets you in the mood for more :P

PostPosted:Tue Jan 17, 2012 7:17 am
by Akimoto
Jawfin wrote:The point of view I am angling for is you don't learn a language specifically to work in it, but to understand how programming works. Learning C first (any variant) is not recommended due to its lax structuring allows for bad code to run.

As a comparison, say you wanted to be a truck driver, you wouldn't go looking at articulated vehicles if you don't even know how to drive. First, it doesn't hurt to know how to ride a bicycle (like scripting and c-shell), but you need to learn to drive a car. That would be either Pascal, Modula 2, or Java. In my opinion this is a requirement. In a highly controlled training environment you could learn C first, much like you could learn to drive a truck and never stepped foot in a car.

Finally, the language you learn at home is, DON'T. All you will accomplish is a bunch of bad habits which then will hopefully become untaught.
Unfortunately, that is something I can simply not do. I am currently taking online classes (payed for by the school actually) - And reading 2 books about C++ and C# programming languages. (The focus is to learn to read and understand the languages - It's not like I will remember everything in my head)

Not doing anything until I go to college is unacceptable. I am already way ahead of my class, bored to death. That is why I have started cooperating with a librarian to get me books to read- heh.. and teachers to get some pointers (not a pun lol).

Also, I have noticed that all the "books" and video teachings in C++ and C# are practically the same with a few differences. Noticed C# is heavily into web applications with .NET - Which is awesome.

Also noticed Java is almost... the same as C#/C++ - Which is awesome, and makes it easy to read and understand.

Just wrote the basic console app with text - (not really impressive, but its an start)

PostPosted:Tue Jan 17, 2012 7:28 am
by jawfin
Yup ok. Not too sure why you started a thread about something of which you have already decided and won't deviate from. At least I can act as a sounding board :)

PostPosted:Tue Jan 17, 2012 10:11 am
by Akimoto
Jawfin wrote:Yup ok. Not too sure why you started a thread about something of which you have already decided and won't deviate from. At least I can act as a sounding board :)
Your input have served its purpose~

Now I can keep what you said in mind. + the importance of Java programming structure. I will be doing Java as well for web based applications (mostly).

PostPosted:Tue Jan 17, 2012 8:23 pm
by Akimoto
Another topic;
I have been reading a little about naming variables.
I would like your input on your methods of naming them~

The first character of a variable name must be either a letter, an underscore character (_), or the at symbol (@)

Now, if I someday were to write my own little program (i have ideas..), i would like it to be easy to remember these, so if I had a variable named "littleJohn" - The risk of me forgetting or... not having a structure in my naming (personal) system. How do you name your variables? All help is appreciated, as usual (even if I may not look like I do) :)


EDIT:

Also, I believe this isn't really the forum to ask these questions, I only do because I know we got a (if not more) skilled programmer :)

Could you recommend a good forum for me to post programming questions for tips & tricks?


EDIT: Oh my god, double post. My sins! My SINS! *did it to highlight a new post here*

EDIT:

Is this horrible? myName, myAge - granted, if I had 100's of different variables... maybe a better method could be used?

static void Main(string[] args)
{
int myAge;
string myName;
myAge = 23;
myName = "Ivan";
Console.WriteLine("Name: {0}\nAge: {1}", myName, myAge);
Console.ReadKey();

}

PostPosted:Sun Jan 22, 2012 4:28 pm
by Akimoto
Close topic - It is no longer useful.