• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Advice for learning a language?

Status
Not open for further replies.
Level 4
Joined
May 2, 2009
Messages
69
I'd like to learn how to use a programming language, but I'm not quite sure what to learn and where to start. I'm just looking for a bit of help in deciding what to do.
 
Level 14
Joined
Jun 27, 2008
Messages
1,325
And how are you wc3 mapping skillz? Do you know GUI or do you use (v)Jass? Both help a lot when learning languages because most (imperative) programming languages have the same basic constructs like if/else, loops, functions.
 
Last edited:
First advice, don't be afraid

oh well, start with pretty verbose languages I guess (VB.net, ruby, phyton? etc)... and work on your logic... There are ruby tuts and books online, VB have a nice IDE (Visual Studio), phyton (and C#,java etc) has an interactive tutorial online that I saw just yesterday...

And always start with learning the syntax of the language...
 
Level 23
Joined
Apr 16, 2012
Messages
4,041
Wikipedia said:
COBOL /ˈkoʊbɒl/ is one of the oldest programming languages, primarily designed by Grace Hopper. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments.

unless you are looking to making banking system, I dont think COBOL is good choice
 
Level 14
Joined
Jun 27, 2008
Messages
1,325
Start by coding some simple stuff in C++, then continue to C#.
And hate Python. Then you're off to become a great coder.

C++ is much harder to learn than other similar languages (similar in terms of how powerful they are and what they are used for). Sure a nice side effect from learning C++ (or C) is that you understand how memory and pointers work, but learning pointers and stuff can be very frustrating.
Im confident that making fast progress and having gratifications is one of the most important things when learning to program.

If you want to learn a general purpose language then id highly recommend Java. Java is easy to learn, there are very comfortable IDEs, there is a huge amount of free tutorials/books available online and the community is huge.
In addition you can do pretty much everything in Java. Write basic console aplications, GUI applications, you can write small games, you can test stuff like networking etc.
Oh yea and lets not forget that Java is one of the most used languages for developing enduser and enterprise software.

C# is actually very similar to Java and not such a bad alternative. However c++ is a stupid idea.

About python. Either you really dont understand python or you are making a joke, i cant tell. But it is inappropriate to tear down this epic language in front of someone who might actually believe the shit you write. Python is definitely worth learning, just maybe not as the very first language.

Next time you need to take a dump try to do it in a thread where no newbies have to suffer from it.
 
Level 23
Joined
Apr 16, 2012
Messages
4,041
I actually learned C++ as my first programming language, and I didnt have any problems with progress or anything, but its matter of personal opinion.

Just pick one of the languages(preferebly the one that is made for what you want to do, so if you want to do web design you wont go for Java for isntance) and learn it
 
Level 8
Joined
Nov 20, 2011
Messages
202
I think you shoud learn a good language instead of a bad, because good languages are better than bad ones. Bad languages got the disadvantage that they are worse than good ones. An advantage of good languages is the fact that they got better features than the bad ones got. Also the code of good languages looks better than the code of bad ones.

Personaly i like good languages more than bad ones because my name is not nestharus.

>>>Learn wurst, the best language since sliced bread!!!<<<
 
Level 23
Joined
Apr 16, 2012
Messages
4,041
I think you shoud learn a good language instead of a bad, because good languages are better than bad ones. Bad languages got the disadvantage that they are worse than good ones. An advantage of good languages is the fact that they got better features than the bad ones got. Also the code of good languages looks better than the code of bad ones.

Personaly i like good languages more than bad ones because my name is not nestharus.

very true, but people should decide themselves what is good and bad programming language for them, not generalize
 
Level 29
Joined
Jul 29, 2007
Messages
5,174
What on earth is a "good" or "bad" language?

At the end of the day, you use different languages for different purposes, it doesn't matter that much where you begin, after a while you will end up knowing how to use a big selection of languages (even more important, you will know how to learn how to use a bigger selection of languages).

My only suggestion is to pick whatever language, have a project in mind that isn't too hard, but also isn't too easy, and simply make it.

This is in fact the best way I found to learn a language. As much as tutorial sites and such are helpful, you can't learn to use a language from them. By actually creating something you don't know how to create in the language, you will end up learning it (and have that something as a bonus!).
 
Level 23
Joined
Apr 16, 2012
Messages
4,041
I wonder why people keep bashing C++, maybe he would actually like to learn it, and learning any language is not a waste, but if he reads this bashing, it will certainly drive away

And pleade if you state your argument, dont say "Its too hard!" or "pointers!" because pointers can be completly avoided if logic(and knowledge of STD, or what you are doing in general) is used

Because thats like saying Your map deserves 0/5 because I dont like the screen attached as the picture

Why do I write this, and why here?

I dont want to create another thread for th shit, and I see endless bashing with 1 and only argument, "Its too hard!"
 
I wonder why people keep bashing C++, maybe he would actually like to learn it, and learning any language is not a waste, but if he reads this bashing, it will certainly drive away

And pleade if you state your argument, dont say "Its too hard!" or "pointers!" because pointers can be completly avoided if logic(and knowledge of STD, or what you are doing in general) is used

Because thats like saying Your map deserves 0/5 because I dont like the screen attached as the picture

Why do I write this, and why here?

I dont want to create another thread for th shit, and I see endless bashing with 1 and only argument, "Its too hard!"
Could not agree more. I like the way C++ works, pointers and shit, makes much more sense that some things I see in C#.
Yes it's harder but so what, it's not such issue for me.
 
Level 4
Joined
May 2, 2009
Messages
69
Haha, this thread got more attention than I had expected. :p Sorry I didn't explain much, I haven't been home since a few hours after posting that.

I'm only a novice in the WC3 world editor programming, I have a moderate understanding of GUI and I'm just now discovering how useful Hashtables are, but I have never attempted JASS.

And I wouldn't know where to begin to explain what sort of language I'm looking for. I'm looking into studying Game Design and Developement in college, and a friend has said it's a very good idea to learn to use a programming language. I'm sure you guys would know what sort of language would be good to learn, but I'm lost. :)
 
Game Design and Development is very broad... you might or might not need programming knowledge depending on what specific role you wanna be...

if you wanna go hardcore programming role, then you might really wanna try C++... though if you find it a bit hard to learn (it can really be confusing for beginners), try other languages first and get yourself acquainted to the basics then retry C++...
 
Level 4
Joined
May 2, 2009
Messages
69
@Adiktuz That's what I mean about where to start. I don't intend to be a hardcore programmer, I'm more interested in the designs and concepts side of game design. You said C++ is good, but I might want to learn "other languages" first. What languages are easy(er) to pick up that can help me to better understand others as I move forward?
 
If you're just gonna do design and concepts (Theoretical, drawings, plans etc: No computer abstractions), you don't even need to learn a language...

what's easy or not depends on you really... I started out with (JASS/vJASS if that even counts, Visual Basic, Ruby, C#)... as of now, I only use C++ to make dlls

I suggest C# or VB since they have a nice IDE (Visual Studio) in case you learn easier when you can drag and drop objects then check out the resulting code... Visual Studio also has an IDE for C++...
 
Level 14
Joined
Jun 27, 2008
Messages
1,325
So if you only want to come in touch with a programming language you can even just learn vJass or WurstScript. The basic constructs are very similar to those of "real" languages and when you know vJass or WurstScript it will be a lot easier to learn c++ or something similar.

This would especially be a good idea if you have a high motivation of scripting Wc3 maps anyway. C++ or other languages however can be very boring to learn when you are mostly writing console applications which output text and numbers.
 
Level 14
Joined
Jun 27, 2008
Messages
1,325
Nah ZinC is complete crap. Sure it look a bit more like c++ but those are small syntax things.
- But ZinC lacks support (vJass is THE standard but only few people here on THW know ZinC).
- ZinC lacks compatibility to vJass, so you cant use some of the cool resources here
- vJass is still getting developed (by different people from THW), ZinC however is dead
- ZinC lacks some language features even the old vJass has, e.g. stub methods.

In my opinion the small syntax improvements and stuff like "i+=3" or anonymous functions dont justify the problems stated above.

WurstScript however is definitely worth learning. But i wouldnt wanna compare Wurst to vJass because those languages have different purposes. vJass = full control, Wurst = focus on convenient usage
 
Level 23
Joined
Apr 16, 2012
Messages
4,041
Nah ZinC is complete crap. Sure it look a bit more like c++ but those are small syntax things.
- But ZinC lacks support (vJass is THE standard but only few people here on THW know ZinC).
- ZinC lacks compatibility to vJass, so you cant use some of the cool resources here
- vJass is still getting developed (by different people from THW), ZinC however is dead
- ZinC lacks some language features even the old vJass has, e.g. stub methods.

In my opinion the small syntax improvements and stuff like "i+=3" or anonymous functions dont justify the problems stated above.

WurstScript however is definitely worth learning. But i wouldnt wanna compare Wurst to vJass because those languages have different purposes. vJass = full control, Wurst = focus on convenient usage

sub methods? Who uses inheritance even

Developed? by who is vJass developed? and no updating JNGP is not developing vJass

How are some ZinC resources unusable in vJass, when ZinC is generated to vJass before vJass -> Jass even begins?

ZinC is so easy to learn, it takes maybe hour to understand it, and maybe 2 another to write something in it, and you fully understand

Just thinking loud
 

peq

peq

Level 6
Joined
May 13, 2007
Messages
171
ZinC is so easy to learn, it takes maybe hour to understand it, and maybe 2 another to write something in it, and you fully understand

It takes 2 hours if you already know vJass, because it is nearly the same language modulo syntax. If you start learning to program from scratch it will take much longer.

You might want to read Teach Yourself Programming in Ten Years by Peter Norvig.
 
Level 14
Joined
Jun 27, 2008
Messages
1,325
Developed? by who is vJass developed? and no updating JNGP is not developing vJass
not sure how you call adding language features, if its not developing the language

How are some ZinC resources unusable in vJass, when ZinC is generated to vJass before vJass -> Jass even begins?
Textmacros.

ZinC is so easy to learn, it takes maybe hour to understand it, and maybe 2 another to write something in it, and you fully understand
Sure, but the difference between vJass and ZinC is really small so i think especially for a beginner its probably the better choice to pick that language that has like 100 tutorials and countless of systems available.
 
Level 19
Joined
Aug 8, 2007
Messages
2,765
I tested textmacroes, they indeed dont work

textmacros work fine bro (probably because your spelling it wrong...)

in terms of vjass updates, last update was early 2013 iirc and nesth is working on an update atm
 
Level 23
Joined
Apr 16, 2012
Messages
4,041
textmacros work fine bro (probably because your spelling it wrong...)

in terms of vjass updates, last update was early 2013 iirc and nesth is working on an update atm

yea, because I completly ignored all errors, just went by logic error == no work, and also for sure I didnt run the textmacro outside of zinc

What ness is doing shouldnt br called vJass imo, thats like calling Wurst vJass just because you can use name mangled vJass inside Wurst(example, I have better but you may understand my point from this)
 
Level 14
Joined
Jun 27, 2008
Messages
1,325
What ness is doing shouldnt br called vJass imo, thats like calling Wurst vJass just because you can use name mangled vJass inside Wurst(example, I have better but you may understand my point from this)

The essential difference is that what he is doing is backwards compatible to vJass so there is no reason not to use his language as you dont have to use the new features (language wise, of course if his tools suck then ppl will stick to jgnp5)
 
Level 6
Joined
Jul 30, 2013
Messages
282
Nah ZinC is complete crap. Sure it look a bit more like c++ but those are small syntax things.
- But ZinC lacks support (vJass is THE standard but only few people here on THW know ZinC).
- ZinC lacks compatibility to vJass, so you cant use some of the cool resources here
- vJass is still getting developed (by different people from THW), ZinC however is dead
- ZinC lacks some language features even the old vJass has, e.g. stub methods.

In my opinion the small syntax improvements and stuff like "i+=3" or anonymous functions dont justify the problems stated above.

WurstScript however is definitely worth learning. But i wouldnt wanna compare Wurst to vJass because those languages have different purposes. vJass = full control, Wurst = focus on convenient usage

.. vjass is still being developed? i thought Cohadar abandoned it some time 2012..
well i'd sure love to know who's holding that flag :)
 
Level 15
Joined
Oct 18, 2008
Messages
1,588
Hmkay, my 5 cents (I don't really want to join the language war though):

1) I love C# for too many reasons to state, and I think it's one of the best languages for starters.
2) I do recognize the worth of C++, and while I think learning the basics of OOP, logic and such is better with an easier alternative, if someone wants to go for C++ later, better do it before really getting into any other language used as a step-stone (to not get too attached to the language specific things), but only after learning the basics.
3) Keep practicing coding. If you don't actively do that, you won't progress, but if you do, you may end up a decent programmer in just months.
4) If you don't know the solution for something, Google: "myproblem site:stackoverflow.com" - most problems can be found on that site being already answered. If it's not, ask the question yourself there.
 
Status
Not open for further replies.
Top