Home Technical Talk

Programming Language Order

I'm trying to learn programming, but I'm not sure which order to learn the different languages in, since I'm sure some things are easier to pick up on one language once you learn another one. I doubt there's a real answer to this question, but I want to learn HLSL, Maxscript, Python, Java and Javascript (for now). Anyone got a particular order they'd recommend a noob like me learn this in?

Replies

  • mdeforge
    Options
    Offline / Send Message
    mdeforge polycounter lvl 14
    Asking about programming in an art forum... this is blasphemy! :D

    No actually, I'm finishing my Bachelors in Computer Science right now with a focus on game programming. I also have an Associates in Animation.

    I highly suggest learning VB.NET first. It's easy and it gets you familiar with a few important concepts. Don't spend too much time on it though. You can learn the basics and not do anything crazy in it. Then move onto C++ and really grind your nose in it. Once you get fed up with that, move onto C#. C# is a lovely language.

    But if your just talking about MaxScript or MEL, just jump right in man. All they are or command versions of everything your doing. It's pretty easy to piece together once you know what each flag means.

    As for HLSL, I'd like to learn that too. From my encounters with it so far, it's not very nice. But, like every other langauge, it just takes some getting used to. Once you know what, you pretty much know them all. You just have to adjust to the syntax and the way of thinking.

    Screw javascript, maybe learn Java. Maybe. Python is awesome, good beginner language too. I'd say either VB.Net or Python.

    EDIT: If you want to PM me sometime to chat, have at it.
  • Tyrone70
    Options
    Offline / Send Message
    Lol. I always saw this as a technical artist forum, and I have yet to make an account at tech-artists.org. Thanks very much for the feedback. I will definitely keep your name close by.
  • Kwramm
    Options
    Offline / Send Message
    Kwramm interpolator
    I lead a TA team and from total newbs I require at least Python, MEL or Maxscript (we deal mostly with Max and Maya). Those languages are all rather easy to learn and give the most bang for the buck in production. C++/C#/SQL/HLSL are awesome too if people know it, but it's not like we're using them too often. (big C++/C# only stuff goes to the real programmers who write C++/C# code all day long ;) )

    We do mainly art support but also small to mid-scale tools coding here. For GUI stuff we use Qt.

    C# and C++ we usually just use for stuff we cannot do in another language or where speed is the issue. Re-compiling stuff can be annoying, plus that some team members don't know C/C#, which sucks when we have to maintain stuff.

    HLSL is just shaders. While knowing it is important, it doesn't really help you when you need to write anything else.

    SQL is neat to know, because it ROCKS when you can network your tools to gather feedback, statistics, share preferences, etc.
  • Ben Apuna
    Options
    Offline / Send Message
    I'm learning Python atm, and it seems to be very easy to learn and quite powerful. Many (most 3D?) apps allow for scripting in Python.

    I started to learn CG for shaders but quickly realized that to really grasp what was being taught I would need to first brush up on my math skills, which I'm also currently studying.
  • haiddasalami
    Options
    Offline / Send Message
    haiddasalami polycounter lvl 14
    Best place to learn HLSL is ben Clowards DVD's up at cg-academy. Once you rip through all of them and coupled with some books you can start opening shader fx files and learnign from them. CG tutorial from Nvidia is a good book and can be found online and though it deals with CGFX, CGFX and HLSL are similar. Definitely want to try learning Python over the summer. Also another good book is Shader for Game Artists and once you're done with those you can move to GPU Gems etc.

    Also the best advice given to me to learn programming was just jump in and start doing simple scripts.
  • LMP
    Options
    Offline / Send Message
    LMP polycounter lvl 13
    you could download free lectures from MIT course 6.00 which uses general python (though scripting for maya and ect, you'd need a little more)
  • mdeforge
    Options
    Offline / Send Message
    mdeforge polycounter lvl 14
    When it comes to programming, at least for me, necessity is the mother of all invention. Meaning, yes, you should learn the basics, but as for projects goes, work on stuff that matters to you. You'll find that you'll grow more and can stomach projects longer. Before I start programming, I see if someone's done something similiar to what I'm doing. I'll read forums on the program, maybe peice together some code snippets that were dropped here and there, then hack something together and sew up the seams myself. Call me lazy, but I get the job done. I just consider myself resourceful. Just don't plagiarize code though. Make it your own.

    Once you've hacked together enough projects and grown a bit from it, you'll start to notice new ways you could have gone about the problem, or realize that this code sucks and you could do it infinitely better. Just jump right in, you'll learn how to swim later.
  • renderhjs
    Options
    Offline / Send Message
    renderhjs sublime tool
    set a simple goal you want to archive, then choose a language you can use for that.

    If you are not obsessed or goal driven leaning the language there is not much success doing it at all. Just saying you want to learn programming is as vague as saying I want to learn to be creative. Define you sub interest and pick things up from there, that's a lot easier in the end as it makes decisions easier and asking questions likewise.

    Some sample ideas:
    Build a simple iphone game: Unity3D with c#
    Build a specific tool in 3dxMax to improve your work flow: maxscript
    Build a simple online game: Flex SDK with Actionscript or Flash CS3+
    Build a dynamic website or Blog / Portfolio: jQuery (JS) & PHP / HTML
  • piippo
    Options
    Offline / Send Message
    It's not really wise to learn VB.NET and then C++/C# if your main goal is to learn Python/maxscript/javascript. Learning a new language, the semantics, doesn't take long. But every language has it's own nuances that you learn by doing. I would certainly forget about Java and C++, you aren't sure you will need them. You can use PyQt with Python - there are a lot of bindings available. If that's your thing.

    Python is nice for a beginner. Very versatile language and used all over the place, but 3ds max doesn't have Python support yet. It might be coming rather soon though.
  • Tyrone70
    Options
    Offline / Send Message
    Wow, thanks guys. I do have specific reasons for wanting to learn each language that I listed. I would have listed MEL too, but I read on Wiki that Maya support Python now. I'm a Max user, so if Max eventually does support Python, that would be cool.
    As far as what I know right now, I've jumped all over the place. 1st, I was taught ActionScript 2.0, then kind of upgraded to 3.0, although I can't remember much to save my life. I tried learning one of those "C" languages, but I forget which one. I couldn't stay awake :(
    Then, we had to make a game for our senior project. We wanted to make the game in UDK, but I hadn't taken the class for Javascript yet, so I just jumped headfirst into UnrealScript. That was painful, and since I was the only "programmer" on the project, it was also exhausting. Afterwards, I did learn some javascript and started liking it, but then heard somewhere else that a lot of position don't even need it. SO I'm back to square when it comes to programming. I'm definitely motivated since just about every job position I'm interested in wants me to be fluent in one or more of these language. HLSL isn't a huge deal for me since I'm pretty good at math and I'm playing around with ShaderFX for the time being. It's probably going to be more of a challenge getting the syntax in order and learning which magical keywords each language likes.
  • sprunghunt
    Options
    Offline / Send Message
    sprunghunt polycounter
    If you want to be a game programmer you will have to know C++

    Python, java, unrealscript, maxscript, are all something a tech artist might use but are not as relevant as C++ to actual programming work.

    Java is not used for big games as it's too slow to execute. It tends to be something used by smaller iphone or web games that don't need fast execution.
  • Tyrone70
    Options
    Offline / Send Message
    That's exactly why I want to learn these language. I'm trying to become a tech artist. :P
  • Jonathan
    Options
    Offline / Send Message
    I work almost all day in C#, Maxscript, and HLSL.

    I think one of the things that helped me most was learning C first. I went through C book, watched a lot of tutorials, wrote a lot of random programs in C, etc. and then spent more time in Maxscript and C#.

    I love C# the most and C# coupled with .NET is awesome.

    Python is awesome too, but I love the structure C#/.NET provides. :)

    I'm certainly not done learning yet, as when I'm not at work or spending time with my wife and son, I'm usually reading a programming book or writing programs. :)

    There are always areas to improve. :D
  • PolyHertz
    Options
    Offline / Send Message
    PolyHertz polycount lvl 666
    I spent some time back about a year or so ago learning mel and some maxscript, but once I started trying to do more complex stuff found that my dusty math skills weren't really up to the challenge without a refresher course. Just thought I'd say that if you end up finding yourself in a similar situation later, 3DBuzz has a bunch of math tutorials that're aimed at aspiring programmers.
  • haiddasalami
    Options
    Offline / Send Message
    haiddasalami polycounter lvl 14
    Khan Academy is a good place to brush up your math too.
  • Tyrone70
    Options
    Offline / Send Message
    Khan Academy is a good place to brush up your math too.

    I ran into that the other day. it blew my mind.
  • Yozora
    Options
    Offline / Send Message
    Yozora polycounter lvl 11
    I'm also starting to learn some programming. A friend advised me to first get an understanding of javascript and then move onto c#.

    My goal is to make a small game in Unity.
  • sprunghunt
    Options
    Offline / Send Message
    sprunghunt polycounter
    Tyrone70 wrote: »
    That's exactly why I want to learn these language. I'm trying to become a tech artist. :P

    Then learn maxscript, mel & HLSL. That'd be a good start for a tech artist. You can get into the more hardcore languages later.
  • Jonathan
    Options
    Offline / Send Message
    Honestly, you shouldnt' be worried too much about "which language" but rather the logic, algorithms, data structures, etc.

    You should be able to pick up a new language in a relative short amount of time once you're used to the environment you're working in.

    I often have to bounce back and forth between Maxscript, C#, Javascript, Python, and whatever else gets thrown my way, and then sometimes I get to make art to, so it's a rather interesting situation but I enjoy it. :)
  • Tyrone70
    Options
    Offline / Send Message
    One more question: Which version of Python is being used now? Are they any major differences between 1,2, or 3?

    **edit**NVM. After some research, It seems as though Python 2 is the one to know.
  • Jonathan
    Options
    Offline / Send Message
    Maya is 2.4, 2.5, etc. (depends on what version of Maya you're using)
    Blender is Python 3,

    There are some "breaking" differences between Pything 2.x and Python 3, so be sure just to learn the one your apps require, though you'll eventually be using Python 3 in the future. :)
  • piippo
    Options
    Offline / Send Message
    I would just go for the language you need the most. If you need C#, learn C#. I don't recommend the detours, like learning C first and then C#.
  • eld
    Options
    Offline / Send Message
    eld polycounter lvl 18
    Jonathan wrote: »
    Honestly, you shouldnt' be worried too much about "which language" but rather the logic, algorithms, data structures, etc.

    You should be able to pick up a new language in a relative short amount of time once you're used to the environment you're working in.

    I often have to bounce back and forth between Maxscript, C#, Javascript, Python, and whatever else gets thrown my way, and then sometimes I get to make art to, so it's a rather interesting situation but I enjoy it. :)


    This so much, logic structures, flowcharts, they're all the same in every language.
  • keres
    Options
    Offline / Send Message
    keres polycounter lvl 12
    My first language was C and I'm so happy because of it. When people ask me "what languages do you program in?" I say just about all of them, because so many languages (C++, Java, C#, etc) are all C-like. It's also really, really fast, and the string/char handling functions are ones you'll have to get dirty with sooner or later.
  • Tyrone70
    Options
    Offline / Send Message
    I've decided I'm going to dive into MaxScript. I'm going through Dub's MaxScript tutorials right now.
    I probably would learn MEL, but I was raised on Max and have yet to even make a box in Maya. I'm assuming that order to script anything, you first have to be familiar with the program.
  • craigzaaki
    Options
    Offline / Send Message
    better start with vb.net and then c# and asp.net. Becuse vb.net is very easy to learn and change c# , C# is object oriented and similar syntaxes like Java and c++ . With .Net technology you can write programs for desktop and web plat form also you can use similar code without much change . From vb.net http://vb.net-informations.com to http://asp,net-informations.com you cn staudy from the same environment - Visual studio with out much strain of a beginner.

    craig.
  • poopipe
    Options
    Offline / Send Message
    poopipe grand marshal polycounter
    JavaScript, maxscript or python would be where I would (did)start if you want to learn "how" to write code . You don't have to mess around with compiling tools, complex libraries or heavy IDEs and they have proper grown up syntax - unlike vb. You'll learn some bad habits with scripting but at least stuff will work regardless...

    hlsl is C like but only deals with a very specific set of things. It's simple enough to hack once you can read the words but to use it properly you need a shed load of cunning maths and rendering ninja stuff.

    Once the principles are in place you can move onto proper compiled languages and only have your environment to worry about.
  • Ashaman73
    Options
    Offline / Send Message
    Ashaman73 polycounter lvl 6
    Ok, here's the programmer view:
    Which language you learn doesn't matter at first, because the concept behind a certain language type is more important. Once you have mastered one language, you will adapt others with the same concept quite fast.

    So, for now there're two interesting language realms, the object oriented, mostly strongly typed, multithreaded and heavily structured languages and the group of scripting languages. If you want to really learn a programming language concept (=I want to be a coder), I would sugguest to learn one of the first group, that are C++/C#/Java (+others). These languages are used to build hi-performance games/enterprise applications, they are object oriented, strongly typed and are generally really powerful, but might be not so important for a tech-artist.

    The second group of languages, the scripting languages, are often by far more flexible, have no or seldomly any kind of type safeness and some really simple mechanism to handle certain concepts (i.e. lists,maps etc.). Most will support some features of the first group (i.e. classses), but are more lax about it. They are often used where performance isn't so important (game design scripting, max scripting), but fast development and easier handling.
  • gray
    Options
    Offline / Send Message
    personally i think starting out with max script or mel is harder then starting with a language like c or python. for one there is a huge amount of books on those languages that teach you programming basics. that's what you need in order to make sense of what programming is and how tho write good programs. how to structure your programs, data structures and algorithms, memory management, object oriented programming etc.

    your going to have a hard time with the built in scripting in maya or max if you don't understand those things because the languages are not as cleanly structured and have a huge amount of functions for very specific thing. that tends to make it confusing if you don't have a good foundation.

    i was really kind of lost with scripting until i dug in and really learned c. once i learned how write programs in c then things started to make sense. and you need to get a good intro to data structures and algorithms book. there are many good books for that with c and python but none for mel or max script.

    the good thing about c is that it gives you a foot in the door to c++ which is where all the serious programming is done. once you know some c++ then you can get into api programming for maya and max. the maya api is quite amazing library. i am having quite a lot of fun learning the maya api.
Sign In or Register to comment.