Jump to content

Programming languages


Thorlord

Recommended Posts

im currently a Computer Science student learning C++, unfortunately my college computer classes end at the end of this term and im wondering if anyone has any ideas on what languages to learn.

 

should i learn more C++?

should i move to a different language?

 

i already have the programmers mentaility (freaky when you notice yourself trying to calculate the angles of light reflecting off your fathers bald head)

 

also

 

are there any good colleges out there that have a really good programming classes. i am thinking about going to digipen, but there are other colleges out there that teach programming classes.

Link to comment
Share on other sites

I depends on what you plan to do after your school.

Anyway, knowing some other languages is ever usefull. You should continue C++ and try to discover other object programming languages such as Java or C#. They are very easy to understand and you can make a lot of thing with them very quickly since they both have a huge amount of classes. They both have quite good and free IDE which are very usefull.

I don't know at all C++ but if it's not already the case, Java and C# won't bother you with memory management. This is one of the most important ehancement brought by these progamming languages in my opinion.

Link to comment
Share on other sites

From my experience, being able to code in ASM is pretty useful when trying to optimize code. I imagine it's only useful when trying to create something superfast (code that's not wasting a single cycle) like, for example, graphic rendering or physics calculation.

Swedes, go to: Spel2, for the latest game reviews in swedish!

Link to comment
Share on other sites

The choice of language is really a secondary thing to the right mindset, i.e. being able to visualise problems and solve them in a structured way. For some, it's a matter of taste, for others it's a given depending on where there interests lay and what platform they are going to work on.

 

C++ is probably as good a language as any to practise and get familiar with for the important part is the way you think about the problem (functional, object oriented, stack based, whatever), language is just a tool you use to express your thoughts regarding the solution.

 

Pick one, get good at it, remember that it is just one way of doing things. You might run across several language requirements during a lifetime :thumbsup:

“He who joyfully marches to music in rank and file has already earned my contempt. He has been given a large brain by mistake, since for him the spinal cord would surely suffice.” - Albert Einstein

Link to comment
Share on other sites

My class for C++ is almost over, too, but next year I get to take AP Java, so I'm good... :)

 

Most of the code on games I've checked out are in C++, or something relatively similar to the C++ I recognize...

 

You calculate the angles of light off of your dad's head? I'm stuck throwing paper balls and my friends, looking at the way they bounce off of their foreheads... :huh: :ph34r:

Geekified Star Wars Geek

 

Heart of the Force, Arm of the Force

 

"Only a Sith deals in absolutes!"

-Obi-wan to Anakin (NOT advocating Grey-Jedidom)

 

"The Force doesn't control people, Kreia controls people."

Link to comment
Share on other sites

:(

 

That reminds me of this one dream I had, but I digress from the main topic which I have totally and utterly forgotten in this first place, expressing it with the use of redundant phrases that say the same thing over and over again, so I'll go take my medicine now and go night-night in my marshmallow room...

 

:ph34r:

Geekified Star Wars Geek

 

Heart of the Force, Arm of the Force

 

"Only a Sith deals in absolutes!"

-Obi-wan to Anakin (NOT advocating Grey-Jedidom)

 

"The Force doesn't control people, Kreia controls people."

Link to comment
Share on other sites

Like mkreku said, learning one of the assembly languages is useful because it's a a good way to optimize your code. It also helps developing your low-level debug skill. You probably won't need to know how to write a program in assembly from scratch, but you'll need to able to read and modify assembly codes.

 

In the professional world, programming in C and C++ are sometimes treated as 2 different skills. A friend of mine works in embedded system programming and at his work programmers who know C++ but have never done a project in C are not considered knowing C. Don't worry about C too much if hardware is not your thing.

Link to comment
Share on other sites

Like mkreku said, learning one of the assembly languages is useful because it's a a good way to optimize your code. It also helps developing your low-level debug skill. You probably won't need to know how to write a program in assembly from scratch, but you'll need to able to read and modify assembly codes.

 

AFAIK game developers simply do not interact with the system at that level, but learning to program generally is definitely a good thing. You can learn your game specific skills a lot faster than you can learn the basic foundational techniques of being a good programmer.

Link to comment
Share on other sites

We used to use Power Render 4 for our engine and one of the modules written in assembly didn't work the way we expected so our engine programmers had to modify that part of code. I have no idea what that piece of code does and why it was written in assembly the 1st place though.

Link to comment
Share on other sites

In industrial work, you'd be surprised at how much can be accomplished with Visual Basic 6 or VB.NET. Because VB is such an easy language to pick up, you're likely to have a co-worker available to back you up if you're on vacation. Now VB knowledge in and of itself probably will not land you a job, but it will probably help you in whatever job you do get that uses a computer.

 

Oh yeah, and for cross-platform communications, I'd recommend Perl. :rolleyes:

Link to comment
Share on other sites

should i learn more C++?

should i move to a different language?

 

If you are going to be a programmer, you should study more math, especially discrete and graph theory, since many problems can be reduced to mathematical terms for which there are many proven solutions (especially true for graph theory). A programmer should be able to solve problem with any programming language at hand.

 

From my experience, being able to code in ASM is pretty useful when trying to optimize code. I imagine it's only useful when trying to create something superfast (code that's not wasting a single cycle) like, for example, graphic rendering or physics calculation.

 

Assembly is more about computer organisation rather than programming, it is more about computer engineering than programming. If you are programming for any existing operating systems in asm, you will have to handle tons of system calls.

C is good enough in terms of performance, and stuff like graphics rendering are hardware-based today.

 

In industrial work, you'd be surprised at how much can be accomplished with Visual Basic 6 or VB.NET.

 

True for business software.

Link to comment
Share on other sites

Java is C++ without the pointers. C# is Microsoft's version of Java.

 

BASIC is the same language that has been around for thirty+ years, whether it's .NET, Visual or just some sort of generic script.

 

If you are using a Unix flavour (C is the compiled language for Unix), then Shell scripting is very useful. Perl is useful. Assembler is useful, because as fast as the C family is, it is useful to be able to examine your compiled code and edit some of the junk out. (But not necessary; the Windows OS is written mainly in C++. You can see the compiled blocks.)

 

I agree taking some advanced maths is a good idea: any graphical programming will be using advanced maths like vectors and such; any knowledge will help you greatly -- if that's your area of interest.

 

You need to decide what you want to do for more specific advice. There currently is not enough supply for the Java programmer demand.

 

HTH

OBSCVRVM PER OBSCVRIVS ET IGNOTVM PER IGNOTIVS

ingsoc.gif

OPVS ARTIFICEM PROBAT

Link to comment
Share on other sites

Java is C++ without the pointers. C# is Microsoft's version of Java.

 

If you are using a Unix flavour (C is the compiled language for Unix), then Shell scripting is very useful. Perl is useful. Assembler is useful, because as fast as the C family is, it is useful to be able to examine your compiled code and edit some of the junk out. (But not necessary;

the Windows OS is written mainly in C++. You can see the compiled blocks.)

Windows != C++

Assembler is not useful by itself today for a programmer.

However it is essential to know the basics of computer organisation, and at least to know how processor instructions (hence assembly) work.

See my answer on Java and C/C++ in the other thread.

 

Shell scripting is mostly system administrator's tools, you can't make more or less functional software in it.

 

 

You need to decide what you want to do for more specific advice. There currently is not enough supply for the Java programmer demand.

 

HTH

Demand is only for J2EE prigrammers.

Link to comment
Share on other sites

Java is C++ without the pointers. C# is Microsoft's version of Java.

 

If you are using a Unix flavour (C is the compiled language for Unix), then Shell scripting is very useful. Perl is useful. Assembler is useful, because as fast as the C family is, it is useful to be able to examine your compiled code and edit some of the junk out. (But not necessary;

the Windows OS is written mainly in C++. You can see the compiled blocks.)

Windows != C++

Assembler is not useful by itself today for a programmer.

However it is essential to know the basics of computer organisation, and at least to know how processor instructions (hence assembly) work.

See my answer on Java and C/C++ in the other thread.

 

Shell scripting is mostly system administrator's tools, you can't make more or less functional software in it.

 

 

You need to decide what you want to do for more specific advice. There currently is not enough supply for the Java programmer demand.

Demand is only for J2EE prigrammers.

Decompile some Windows and then tell me it isn't C/C++. It is obvious in the pattern of memory allocation and general architecture that it is compiled C/C++. (I'm sure some clever programmers have written some low level assembler for some of the drivers, though I haven't seen any evidence with my own eyes.)

 

Demand for C/C++/C#/Java (all versions, including Enterprise Edition) is high generally. You certainly will be helped with a C family language on your curriculum vitae; there will be no penalty.

 

Shell scripting is useful for whatever OS you are using. I have written many in DOS (and still do occassionally for Windows), VAX/VMS, and various Unix flavours. They are a useful skill (and virtually no weight in the programmers toolkit of one's brain), which is why I mentioned it.

 

See my response to yours, in the other thread.

OBSCVRVM PER OBSCVRIVS ET IGNOTVM PER IGNOTIVS

ingsoc.gif

OPVS ARTIFICEM PROBAT

Link to comment
Share on other sites

Decompile some Windows and then tell me it isn't C/C++. It is obvious in the pattern of memory allocation and general architecture that it is compiled C/C++. (I'm sure some clever programmers have written some low level assembler for some of the drivers, though I haven't seen any evidence with my own eyes.)

 

"Windows NT is mostly coded in C, with some parts coded in C++. Assembly language, which is platform specific, is used only where necessary." (Source)

Look at WinAPI and tell me it is not C.

 

Demand for C/C++/C#/Java (all versions, including Enterprise Edition) is high generally. You certainly will be helped with a C family language on your curriculum vitae; there will be no penalty.

Yes, probably in USA it is, you should know better. >_<

 

 

Shell scripting is useful for whatever OS you are using. I have written many in DOS (and still do occassionally for Windows), VAX/VMS, and various Unix flavours. They are a useful skill (and virtually no weight in the programmers toolkit of one's brain), which is why I mentioned it.

That's what I meant. I just emphasized that it is not a good tool for software development, apart from cases like automated testing.

Link to comment
Share on other sites

Decompile some Windows and then tell me it isn't C/C++. It is obvious in the pattern of memory allocation and general architecture that it is compiled C/C++. (I'm sure some clever programmers have written some low level assembler for some of the drivers, though I haven't seen any evidence with my own eyes.)

 

"Windows NT is mostly coded in C, with some parts coded in C++. Assembly language, which is platform specific, is used only where necessary." (Source)

Look at WinAPI and tell me it is not C.

I am convinced we are arguing the same thing here.

I said Windows was C/C++ with a little assembler.

You said Windows was mainly C with some C++ and assembler.

;)

Demand for C/C++/C#/Java (all versions, including Enterprise Edition) is high generally. You certainly will be helped with a C family language on your curriculum vitae; there will be no penalty.

Yes, probably in USA it is, you should know better. :)

I'm not in the USA. >_<

Shell scripting is useful for whatever OS you are using. I have written many in DOS (and still do occassionally for Windows), VAX/VMS, and various Unix flavours. They are a useful skill (and virtually no weight in the programmers toolkit of one's brain), which is why I mentioned it.

That's what I meant. I just emphasized that it is not a good tool for software development, apart from cases like automated testing.

Once again we seem to be in violent agreement.

 

I don't understand why you have corrected my post to agree with everything I said?! :)

OBSCVRVM PER OBSCVRIVS ET IGNOTVM PER IGNOTIVS

ingsoc.gif

OPVS ARTIFICEM PROBAT

Link to comment
Share on other sites

  • 3 weeks later...

Learn how to program in Squeak so you can add an obscure, relatively useless language to your resume.

 

 

I would reccommend trying to muscle your mind around Lisp and/or Scheme. You'll be a better programmer if you can figure them out since they use an entirely different style than programming in C, C++, Java, ObjC, C#, etc.

 

A lot of buisness are moving to web development models and rich internet applications. Knowing how to use a hypertext preprocessor language like PHP, JSP, ColdFusion, ASP, ASP.Net as well as JavaScript, X/HTML, XML, and Javascript can help you in the buisiness world. Macromedia's Flex system is another area of RIAs but it's really expensive while most of the others are pretty cheap to free.

 

Most games are done in C/C++ and Assembly although Sun has recently started an initiative to make Java a viable game-programming language.

Link to comment
Share on other sites

Most games are done in C/C++ and Assembly although Sun has recently started an initiative to make Java a viable game-programming language.

Yes, I believe the game Chrome was written in Java.

Swedes, go to: Spel2, for the latest game reviews in swedish!

Link to comment
Share on other sites

wow i have goten alot of replies.. and whats more important i have gotten alot of Helpful replies.

 

i know the basics of Assembly, i have written a C++ program that uses Assembly, it wasent really effiecent, but it did help me understand assembly and the interworking of computers.

 

In my C++ class i was told that assembly was used for the processes that would be used millions of times over so that they would execute quickly. but in the gaming world that traslates to a longer release date and im sure that game programmers might be forced to write those essential programs in a 3rd generation language rather than ASM.

 

i am planning on taking as many advanced math classes as i can, just as soon as i can get out of this community college. currently i'm a highschool student taking school at a college rather than a highschool. Now im looking into colleges and trying to find the best ones fit for game design.

Link to comment
Share on other sites

In my C++ class i was told that assembly was used for the processes that would be used millions of times over so that they would execute quickly. but in the gaming world that traslates to a longer release date and im sure that game programmers might be forced to write those essential programs in a 3rd generation language rather than ASM.

 

Yeah assembly takes longer to develop and debug, and it makes porting PITA. It's a necessary evil that I try to avoid at work. In most game development, assembly is mainly used in engine optimization so unless you want to be an engine programmer or console hardware engineer it's probably OK to ignore assembly. I've never encountered the need for any assembly in game play programming. Most of the things that need to be optimized are at the engine level anyway.

Link to comment
Share on other sites

I would re-iterate rjuang, and say that it is probably sufficient that you understand how Assembler works and its relationship to C/C++; that alone will help you to craft better and more efficient C/C++ code, without delving into the guts of the CPU.

 

Of course, if you are concentrating on one platform, then any Assembler used for oft-called subroutines is a big bonus. (C/C++ tends to leave telltale blocks of code, with the headers etc.) It's always going to be a cost/benefit trade-off, and the cost to write Assembler is not counterbalanced by the speed of the game for players past a certain point ...

OBSCVRVM PER OBSCVRIVS ET IGNOTVM PER IGNOTIVS

ingsoc.gif

OPVS ARTIFICEM PROBAT

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...