Just wondering: What's the most popular programming language? And, if you were to pursue a career in programming, like, how many languages would you be expected to know how to utilize?
Also, if I don't take any classes on programming in high school, how much'll that affect me in college if I were to pursue that kind of career? Responses for both if I do or don't learn languages on my own would be kewl.
You'd want to have a semi-decent knowledge of programming languages in general if you were to take classes at all, unless it's an introductory or something similar. But if you get good at a language quickly and can pick up more, I don't see how it could impact upon a potential future career, but it can't hurt; after all, if you are good, starting earlier will give you more time to learn new things.
You'd also want to start with something easy. I learned the basics of Ruby, C and Python, and they were all very easy I just never kept it up (except for a variant of C that I use occasionally). Move unto a more difficult language after you've learned a few basic ones, just to be able to say that you know them, and it'll also give you a good variety of knowledge which is very valuable. Also remember that you could go into a different profession that utilizes scripting, but for other purposes than just computers; the C variant that I had mentioned is used for an engineering gadget that I have. I myself find programming rather boring but love engineering and don't mind the programming for that gadget.
Hmm. Ruby/C/Python are easy? I mean, I don't find them particularly hard, but they're still high-level languages, aren't they? P: And to what extent of knowing a knowledge is good enough to say that "you know them?"
They get advance, definitely, but to learn the basics was not hard. IIRC id only uses C for their engines.
Don't know. The more you know the better off you are, htough.. I think after a certain point "knowing" begins to blur; I "know" spanish, but I'm not able to hold a long conversation in it.
Dang it, I want Firerain in here. :mad: Not that you're bad or anything (I do thank you for your help), but, IIRC, he's currently pursuing a career in the same field. Like nao.
Yeah no problem!
My brothers are both computer scientists, and whenever I would ask them what a good start language was they always suggested Ruby, Python or C. I think the reason why is because they're all flexible, so you can do a lot of stuff the further you get into them, but none are particularly difficult to begin with.
Hmmmm. Maybe I'll learn Ruby, then. I could get into RGSS scripting, too, a little.
And your brothers are computer scientists? What does their work entail? Is it just pure programming or are there other computer-related aspects involved?
I use Python mainly. It is great for beginners, and I would still use it as it is a great scripting language.
But as for how many you should know, the more the better. Get the syntax down, and other basic things, and move on. I know the basics of Ruby, BASIC, and Lua. I know Python the best, however
Yep, both of them. They've been doing computer programming since before I was born. (Oldest is 13 years older than me o.o .)
My one brother works for the university of florida, programming some form of network system. My other brother works for some company that does some form of server software and he's like system support or something.
I think a good starting point may be to dual-boot Windows and Linux. Linux will give you some more hands on experience with system management and different operating systems, and it's is much easier to tinker and experiment with than Windows in my experience.
EDIT: Do this aftr you've experimented with programming a bit. It might help you out, but also search around to get prepared for Linux. It will be frustrating when your audio stops, and you find out that there are several dozen different bugs that could have caused it to happen.
I need to learn Linux OS anyways; the internship I have this summer requires me to use the OS. P: Do you know any good books/sites that I can learn Ruby from? The "Scripts" section used to have Rubycentral.com listed, but that site's gone, now. P: A book that I can "find" easily or a site that's free'd be cool. P:
google "Ruby tutorials"
If you get stuck, go to http://www.daniweb.com/forums/forum42.html (http://www.daniweb.com/forums/forum42.html)
The people there are nice and will help you
DO NOT START WITH INTERPRETED LANGUAGES.
Interpreted languages are slower and less powerful than compiled languages, and also any programmer worth their paycheck is fluent in C++. Simply put, you want to start with C++ and expand your knowledge of the basics, before learning anything else. C++ is the bread and butter of the programming industry and if you don't know it you're up shit creek without a canoe.
Interpreted languages are stupid easy to learn because they look like basic English, and C++ and its derivatives are the most widely used programming languages in the industry, as well as being massively powerful and expandable. If you know C++ and programming basics (and learn about the pitfalls of poor programming standards) then making a transition to ANY language becomes stupid easy.
I'll say it again
LEARN C/C++/C#You'll appreciate it later.
Quote from: redyugi on May 28, 2010, 12:09:03 AM
I use Python mainly. It is great for beginners, and I would still use it as it is a great scripting language.
But as for how many you should know, the more the better. Get the syntax down, and other basic things, and move on. I know the basics of Ruby, BASIC, and Lua. I know Python the best, however
I'm just going to take the time here to clear something up. Python is not a scripting language. Python is a programming language. There is a HUGE difference between a program and a script. A program is the core entity you're making, usually programmed with a more base language, and more often than not a compiled language. A script is something usually made in a different language from the core programming, integrated in order to let the end user modify things. Another name for a script is an extension.
Ruby, Python, BASIC, those are programming languages, not scripting languages. Lua, however, -is- a scripting language. It was designed to enhance other programming languages and expand features to the end user. Programming languages can be used to make scripts (Ruby and RMXP for example), but that doesn't mean they're any less a programming language.
Thanks for the clarification. I guess I'll go back to learning C++. P: But, is learning C and C# necessary? ._. Isn't C, like, just more strict than C++ and C++ has more functions and stuffs? And I don't really know about C#.
C# is a more GUI friendly adaptation of C++ (a step forward), and C is what C++ was advanced off of, I listed all 3 because if you learn one the others are same-ey enough that you'll know them as well.
I suggest C++.
Quote from: NAMKCOR on May 28, 2010, 02:43:23 AM
DO NOT START WITH INTERPRETED LANGUAGES.
Interpreted languages are slower and less powerful than compiled languages, and also any programmer worth their paycheck is fluent in C++. Simply put, you want to start with C++ and expand your knowledge of the basics, before learning anything else. C++ is the bread and butter of the programming industry and if you don't know it you're up shit creek without a canoe.
Interpreted languages are stupid easy to learn because they look like basic English, and C++ and its derivatives are the most widely used programming languages in the industry, as well as being massively powerful and expandable. If you know C++ and programming basics (and learn about the pitfalls of poor programming standards) then making a transition to ANY language becomes stupid easy.
I'll say it again LEARN C/C++/C#
You'll appreciate it later.
Quote from: redyugi on May 28, 2010, 12:09:03 AM
I use Python mainly. It is great for beginners, and I would still use it as it is a great scripting language.
But as for how many you should know, the more the better. Get the syntax down, and other basic things, and move on. I know the basics of Ruby, BASIC, and Lua. I know Python the best, however
I'm just going to take the time here to clear something up. Python is not a scripting language. Python is a programming language. There is a HUGE difference between a program and a script. A program is the core entity you're making, usually programmed with a more base language, and more often than not a compiled language. A script is something usually made in a different language from the core programming, integrated in order to let the end user modify things. Another name for a script is an extension.
Ruby, Python, BASIC, those are programming languages, not scripting languages. Lua, however, -is- a scripting language. It was designed to enhance other programming languages and expand features to the end user. Programming languages can be used to make scripts (Ruby and RMXP for example), but that doesn't mean they're any less a programming language.
http://mcsp.wartburg.edu/zelle/python/python-first.html (http://mcsp.wartburg.edu/zelle/python/python-first.html)
There you go. Alot of what you said is considered wrong here.
Yeah, tell the game programmer with an Associate's Degree in Game Design, working on a Bachelor's that they're wrong about programming. Are you really looking to start a fight with me over this?
Python is a good language, yes, but learning C++ first not only gives you a base in the MOST POWERFUL PROGRAMMING LANGUAGE WE HAVE AVAILABLE, but it will serve as a springboard to learning easier languages faster like Python and Ruby and etc...
Also, scripting != interpretation, that's a misconception.
I'm gonna have to agree with NAM on this one. C++ is more useful and versatile than Python on the whole, and most serious companies like it more. Not saying that Python is bad per se, but learning C++ would be more useful.
In terms of difficulty, I'd say they're both pretty easy to learn, but Python is easier to master, as C++ still confuses me on the whole sometimes.
Quote from: mastermoo420 on May 27, 2010, 11:38:11 PM
Dang it, I want Firerain in here. :mad: Not that you're bad or anything (I do thank you for your help), but, IIRC, he's currently pursuing a career in the same field. Like nao.
que
I should rephrase, unless you've NEVER seen programming before, learn C++ first.
Quote from: cozziekuns on May 28, 2010, 03:37:58 AM
I'm gonna have to agree with NAM on this one. C++ is more useful and versatile than Python on the whole, and most serious companies like it more. Not saying that Python is bad per se, but learning C++ would be more useful.
In terms of difficulty, I'd say they're both pretty easy to learn, but Python is easier to master, as C++ still confuses me on the whole sometimes.
Youtube uses Python. Google uses Python. I can give you a list.
And I was giving the OP other research that he could use. And this was a professor who has programmed longer then you probably. I don't want to fight, but at least admit that what that article says has a few good points.
You think that just because it is interpreted that it means it isn't as versatile and serious? You have done no research on what it can do.
Besides, it is great for beginners for the simple reason pointed out in the article and on Pythons page itself.
It comes with a shit load of modules, and it tells the beginner what they are doing wrong when running it. When you use a compiled language like C, you don't even know if you will get to run it for two seconds without errors. And it takes much longer. That is why many professional people have said they use Python to test a concept or use it as an extension for there program.
Quote from: redyugi on May 28, 2010, 02:29:33 PM
And I was giving the OP other research that he could use. And this was a professor who has programmed longer then you probably. I don't want to fight, but at least admit that what that article says has a few good points.
The article is making a point for someone who has never seen programming logic before in their lives. I don't think that's the case, considering moo is getting an internship.
also see:
Quote from: NAMKCOR on May 28, 2010, 03:51:45 AM
I should rephrase, unless you've NEVER seen programming before, learn C++ first.
Quote from: redyugi on May 28, 2010, 02:29:33 PM
You think that just because it is interpreted that it means it isn't as versatile and serious? You have done no research on what it can do.
No, I said that C++ is MORE versatile and powerful :)
Quote from: redyugi on May 28, 2010, 02:29:33 PM
It comes with a shit load of modules, and it tells the beginner what they are doing wrong when running it. When you use a compiled language like C, you don't even know if you will get to run it for two seconds without errors.
Actually, when I build my project, it tells me where I made programming errors.
No IDE or Compiler or Interpreter can debug logic errors, so no matter what language you use, there's always the chance that something won't work properly, even though the code is clean. It just means your logic is bad.
Quote from: redyugi on May 28, 2010, 02:29:33 PM
And it takes much longer.
To do what? This is a vague and weak argument without some frame of reference.
Quote from: redyugi on May 28, 2010, 02:29:33 PM
That is why many professional people have said they use Python to test a concept or use it as an extension for their program.
Extensions are scripting as I said earlier, and making a prototype or testing a concept is ALWAYS done in some easier to understand language, but they don't leave it in that language. Once the prototype works/is accepted it's moved into something more powerful.
tl;dr - yes, python is alright for beginners to learn at first, and it's powerful enough for the web for one thing, but it lacks some of the low level control that makes C++ so immensely useful and versatile, one of which is POINTERS, and another of which is the speed of a compiled language not having to dick around through an interpretation layer. My point still stands, any programmer worth their paycheck is fluent in a C-based language.
Ok. Fine. I am dropping it. But I would rather start out with an interpreted language to get down the basics, without worrying about compiling, and declaring variables, and memory management. Python does that all for you, so the beginner spends more time learning how to do the basics.
As for getting an internship, bigger companies do use interpreted languages too. Google, Youtube, and many others do.
You'd have to build the project anyway, so you'd still have to compile.
Declaring variables is just good programming practice that you should do even with an interpreted language.
Memory Management is an advanced subject that you don't have to worry about until you learn the basics.
Bigger companies use python, sure, but LINUX is built on C.
And if you apply for a programming job and only know interpreted languages, you'd be passed over for someone who knows C, I can guarantee you that.
BTW making a counter argument after 'ok I'm dropping it' is hypocritical.
Ahaha my internship isn't programming-centered, though. P: I want to look for such an internship in the future (my dad has connections), but, atm, I registered late for stuff, so getting an internship at all was the good choice for me.
Also, I have the choice of taking up Ruby or C++ (Python seems to be on the same level as Ruby, but Ruby could be more applied to the RPG Makers so yeah, lol). Which do you recommend? NAM, you said I should do C++ if I've never seen code, but I have. As far as I know, all coding is exactly the same except the syntax is just a little different. Imo, it's like eventing in RPG Maker except you have more options available and you can be more efficient. It's just knowing the limits of the language and how to practice using it that's a problem.
I wish I still knew C++.
Quote from: mastermoo420 on May 28, 2010, 06:41:10 PM
Ahaha my internship isn't programming-centered, though. P: I want to look for such an internship in the future (my dad has connections), but, atm, I registered late for stuff, so getting an internship at all was the good choice for me.
Also, I have the choice of taking up Ruby or C++ (Python seems to be on the same level as Ruby, but Ruby could be more applied to the RPG Makers so yeah, lol). Which do you recommend? NAM, you said I should do C++ if I've never seen code, but I have. As far as I know, all coding is exactly the same except the syntax is just a little different. Imo, it's like eventing in RPG Maker except you have more options available and you can be more efficient. It's just knowing the limits of the language and how to practice using it that's a problem.
no, I said if you've never seen code then don't do C++.
Ruby has a backwards way of doing things sometimes, but it's still worth learning.
I just meant that if you plan on programming as a job or anything in the future, that you should learn C++.
Hmmm. I may learn C++ then learn Ruby then mess with C++ a little more extensively. And another question: How proficient must you be at a language to say you're good enough with it?
I would say at the very least, being able to create a basic GUI with it.
Quote from: redyugi on May 28, 2010, 09:34:46 PM
I would say at the very least, being able to create a basic GUI with it.
C++ isn't very gui friendly, so that's kinda a bad measure.
If you understand the syntax and core functions of a programming language, everything above and beyond is just adding more classes and etc...
I'm not a teacher, so I really can't say what makes someone fluent.
I'd say it depends on how well you can understand the syntax, or can manipulate it.
Oh yeah, another important question I had: What's an example of a non-OO language and an example of code in that language? And how important are non-OO languages?
@NAMKCOR - I just wanna say that i looked at your game that you made in C++ and that you said you where making it for your class. What class is that and what do you plan on doing with your degree? I was thinking of taking a programming class in college and from what i have read in here that you have a great argument because your there already (programing that is). So i have started to teach my self C++ as a good measure against anything that i might have to learn in the class.
I'm thinking of going into game programing for a career and i wanna try to get a head start before i get in to college. (if i can't, for some reason, learn how to program i have a back up plan of becoming an electrician.)
Quote from: NAMKCOR on May 28, 2010, 10:10:35 PM
C++ isn't very gui friendly, so that's kinda a bad measure.
Yeah, thats true. So, Idk.
Quote from: NAMKCOR on May 28, 2010, 10:10:35 PM
C++ isn't very gui friendly, so that's kinda a bad measure.
http://www.wxwidgets.org/ (http://www.wxwidgets.org/)
Quote from: Yeyinde on May 28, 2010, 10:39:51 PM
Quote from: NAMKCOR on May 28, 2010, 10:10:35 PM
C++ isn't very gui friendly, so that's kinda a bad measure.
http://www.wxwidgets.org/ (http://www.wxwidgets.org/)
that's an extra library specifically designed for GUI, I mean C++ as a core.
Quote from: Mr_Wiggles on May 28, 2010, 10:34:51 PM
@NAMKCOR - I just wanna say that i looked at your game that you made in C++ and that you said you where making it for your class. What class is that and what do you plan on doing with your degree? I was thinking of taking a programming class in college and from what i have read in here that you have a great argument because your there already (programing that is). So i have started to teach my self C++ as a good measure against anything that i might have to learn in the class.
I'm thinking of going into game programing for a career and i wanna try to get a head start before i get in to college. (if i can't, for some reason, learn how to program i have a back up plan of becoming an electrician.)
The class is on Engine Development, over the course we made a simple 2D game engine in C++ with DirectX 9.0c. It's a more advanced subject, at first you'd just be making console applications to learn the basics, DirectX is a pain in the ass, especially if you don't know C++ very well yet.
Yeah, I heard DirectX is... >_> and that there's better options. But I have no idea what DirectX is to be used for, lol. I just know some games need it. ;8
And this again:
Quote from: mastermoo420 on May 28, 2010, 10:29:22 PM
Oh yeah, another important question I had: What's an example of a non-OO language and an example of code in that language? And how important are non-OO languages?
Quote from: NAMKCOR on May 29, 2010, 01:52:42 AM
The class is on Engine Development, over the course we made a simple 2D game engine in C++ with DirectX 9.0c. It's a more advanced subject, at first you'd just be making console applications to learn the basics, DirectX is a pain in the ass, especially if you don't know C++ very well yet.
do they have classes that just teach C++? and would it be wise to take it before i take other classes that use it?
Quote from: mastermoo420 on May 29, 2010, 02:45:11 AM
Yeah, I heard DirectX is... >_> and that there's better options. But I have no idea what DirectX is to be used for, lol. I just know some games need it. ;8
And this again:
Quote from: mastermoo420 on May 28, 2010, 10:29:22 PM
Oh yeah, another important question I had: What's an example of a non-OO language and an example of code in that language? And how important are non-OO languages?
DirectX is a library designed for graphics. 2D and 3D, that's why games need them. It's just a pain now and again.
I haven't seen a non Object Oriented language on a computer ever. I only saw one that way when I was programming on my calculator.
Quote from: Mr_Wiggles on May 29, 2010, 03:53:46 AM
Quote from: NAMKCOR on May 29, 2010, 01:52:42 AM
The class is on Engine Development, over the course we made a simple 2D game engine in C++ with DirectX 9.0c. It's a more advanced subject, at first you'd just be making console applications to learn the basics, DirectX is a pain in the ass, especially if you don't know C++ very well yet.
do they have classes that just teach C++? and would it be wise to take it before i take other classes that use it?
yes, those are the intro classes. and of course you'd want to take intro classes before taking advanced classes :P
Alright, so there's an obvious "YES" to studying programming/scripting in general on my own before I go to a college. But, in the worst case scenario that I didn't do that, would I be able to make it through in a college with such a related major? I'm sure as heck ain't gonna do that, but I want to gauge how hard it possibly could become.
And what're your views on Java? I was just searching "most popular scripting/programming languages" and Java came in first constantly while C++ pulled behind in second. Also, I found out that my school teaches Java for the AP/beyond AP classes and C++ for the honors or regular/on-level class. Is there any merit to Java?
Java is like an easier to deploy but less powerful C++.
There are classes in colleges for people who haven't programmed before, they can't assume you have any education on a subject when you go there so there's intro classes for everything.
Oh, cool deal. Thanks!
I forgot to mention, Java is cross platform and good enough for most simple applications and some simple games, though I wouldn't pursue anything complicated with it.
This is gonna sound odd because i hate C but i'd learn C to start looking back.
C gives you nothing. Anything you do in it has to be thought out and programmed well, Yeah its hard boring and bloody confusing(Binary trees UGH).
However now ive got the hang of it im able to pick up languages a lot more easily, Gimmie something written in it and ill work it out.
I am sorry, This post really forced me to login there.
As a programmer I'd like to comment on a few things:
1. There is no need for you to know a set amount of languages for you to be a programmer.
In fact, saying that you are a programmer because you know X languages is just proving the opposite.
2. I'd recommend C++ to start with, and then moving to C.
And here is why:
While C is by far the one language that really gives you an understanding of what it's like to code, it's more often than not a huge dive.
C++ on the other hand is a bit more intuitive as you are more than capable of "discarding" the use of pointers.
You are also capable of using classes in C++ (As a built-in feature)
Which makes CPP a real bridge between OOP and normal programming.
However C is important to know as it forces you to tackle some real obstacles you usually have solved and given to you on a sliver plate.
The main one is pointers and function pointers, master both of them and you are ready to call yourself a lvl 1 programmer (lvl 0 being the lowest, of course)
3. C,CPP and C# are far from "you mastered one you know them all"
They are each unique and have different traits and uses even though they may share a major amount of syntax.
However as mentioned above knowing some syntax isn't the same as knowing how to program.
C is the quickest and lightest, however you are in charge of just about everything.
It's far easier to program in than say... assembly(Since I can use that too I'll say to code lines ration is about 1:10, that's huge, but if you like juggling registers...)
C++ has the whole Template mechanism and is capable of both OOP and 'normal' programming.
C# isn't just GUI, it's portability (well... sort of, blame microsoft for forcing it to be ms-products oriented until OS developed the 'bridge' to other systems), as well as event oriented programming (and of course simple OOP)
So if you'll ask me which languages you need to be a pro, I'll say none.
But go ahead and use cpp to practice programming while you read data structures and algorithms books.
Well, on a sidenote (I forgot about this topic, lol), I'm actually doing random coding, as my other recent topic shows. And it's in Python, lol. It gets the job done. And nice necropost. P:
Not really necro, sub-forum is completely dead, it was 6th from the top...
Anyway some things had to be said.
Btw about your other thread, I'd suggest you make an automaton but it's probably way too early for you to play with those.
Yeah, and basically everything I need to be done is being done. P: Things are finishing up if they go as I planned.
There is no such thing as "normal" programming.
C++ isn't a bridge
C# isn't event oriented.
C++ and C# are OBJECT ORIENTED.
And you say you're a programmer.
Fuck.
Quote from: NAMKCOR on July 05, 2010, 11:26:43 PM
There is no such thing as "normal" programming.
C++ isn't a bridge
C# isn't event oriented.
C++ and C# are OBJECT ORIENTED.
And you say you're a programmer.
Fuck.
By "normal" I of course meant procedure based.
I call it "normal" because it's old school programming. (This is how it started)
CPP is a bridge between the new and the old like it or not.
I am not saying it was invented as such, but since you can both procedural program and OOP in it , it is actually a "bridge".
C# - go read about delegates.
Sure you can ignore events completely and make it OO but the feature is THERE.
Of course I never said this is all it does, I just said it supports it along with OOP, I was pointing it as a key difference compared to C++ and C.
Java and C# are fully OOP, if you use C++ you can IGNORE the keyword class and never use it, you can also completely ignore your ability to use functions, excluding main().
Hence once again, the word bridge really does suit it.
And last but not least, I said it once I'll say it again.
THE FACT THAT I KNOW ABOUT FEATURES OF 3 LANGUAGES IS NOT WHAT MAKES ME A PROGRAMMER.
And if you think that this is what makes you a programmer, then you are not one.
lol, C++ uses class libraries for everything.
fuck.
Quote from: NAMKCOR on July 06, 2010, 06:26:16 AM
lol, C++ uses class libraries for everything.
fuck.
You can ignore anything you do not wish to use.
For as long as you can do that, I can claim that you can ignore the class keyword.
I mean sure string is a cool feature but you can always discard it for a char* Arr
And this is just about the hardest thing to ignore, everything else is luxury you could do without in C and can easily do without on C++.
But again C++ also has the OO part and not using it at all is just a waste.
Sure, you can totally ignore cmath and string, but you can't ignore iostream and namespace std; unless you don't want to do anything useful at all with your program, which are GUESS WHAT compiled lists of functions and possibly some classes or class references. Nice job completely avoiding the use of methods other than main. So much for avoiding OOP.
Also I looked up delegates, and they are as OOP as it gets, they're essentially Function Pointers. They're designed for use with multiple class methods that might have the same signature, to speed up programming and make code more efficient. They have zero to do with procedural programming.
You can keep saying C++ was designed to provide and take advantage of an archaic and obsolete programming style if you want, and I'll tell you that it was designed to provide and take advantage of something actually useful.
If you don't understand how to work with OOP, you will be USELESS in the real world.
Quote from: NAMKCOR on July 06, 2010, 06:45:59 AM
Sure, you can totally ignore cmath and string, but you can't ignore iostream and namespace std; unless you don't want to do anything useful at all with your program, which are GUESS WHAT compiled lists of functions and possibly some classes or class references. Nice job completely avoiding the use of methods other than main. So much for avoiding OOP.
Also I looked up delegates, and they are as OOP as it gets, they're essentially Function Pointers. They're designed for use with multiple class methods that might have the same signature, to speed up programming and make code more efficient. They have zero to do with procedural programming.
You can keep saying C++ was designed to provide and take advantage of an archaic and obsolete programming style if you want, and I'll tell you that it was designed to provide and take advantage of something actually useful.
If you don't understand how to work with OOP, you will be USELESS in the real world.
dude seriously....
Let's ignore for a second what can be avoided in c++ or what you shouldn't call 'useless' that has no touch with i/o, a class can be done in procedural code, because you can in fact write keyword class, it's just very hard work and you are pretty much bound to end up with something less good than the original one.
And I never said delegates are procedural they are though in very large use for event oriented.
Yes they are like function pointers but they are so much more too.
They can be used as magic little triggers.
This is the concept of event oriented, I do something, a function triggers, it does something, another triggers.
It's pretty much enough that you go ahead and create a button in c# and connect it to some function, then in that function you force-push another button hence triggering another and it's already event oriented.
That's really all there is to it.
Yes delegates can be used as plain function pointers, resolving problems such as 2 classes depending on each other, but again, it can be your gateway to the OE world
I however don't see how this remotely makes things speed up, in fact by merely using classes you already say "Speed? who needs that!"
Which is why c++ once again is great, as while you can do some things with classes, you can keep your vital parts of the program procedural, and not having a garbage collector which can really kick in at the worse of times is a yet anther good thing.
(Unless you enjoy not having to use delete[], and hence avoiding a lot of run-time bugs)
And you can keep saying that procedural programming is obsolete, but there is a pretty good reason operation systems and anything low-level and vital to any machine is not making use of OOP.
That's without mentioning that you'd actually be happier with assembly than with C if there is a rocket you need to shoot down.
It's all about the fact that Classes make it easier for the programmer but the machine itself is being forced into reading and executing a lot more lines than it should.
And your last line is just... too incorrect.
There are 2 types of jobs out there (Sooner or later I'll have to choose and I think I'll go with oop despite my affection to procedural and performance)
1. low-level - drivers, embedded, operating systems, anything you need to run FAST
2. high-level - Anything that runs on top of a low-level program and hence can be slower.
The first pays a lot more but a lot harder to do, a lot more tedious and takes a lot more time.
For example A simple recursive function searching for values in leafs of a given tree and returns the sum.
In C this takes about 7 rows, in assembly this takes about 60.
Which is faster? the assembly one.
Why? because when you translate 7 rows in C into assembly you are going to see a lot of code that just doesn't fit with your current program and could have been removed but since every line you write in C not to mention C# has to be "1 size fits them all" then juggling a few extra registers is needed.
And that sir is why procedural programing is NEVER going out of the system.
My last point isn't incorrect, because you ain't going to get a job programming all of that advanced low level stuff without a damn good resume, and you won't be able to do an entry level job if you don't know OOP.
Procedural programming is considered obsolete for making PROGRAMS. Frameworks and Drivers and etc... that run in the background sure it can be faster, but that's not what he's asking about. He's asking about school and learning to program and what he should be expected to know. He -will- be expected to know OOP. Unless he's going to work for Micro$haft or Nvidia or something he won't be expected to know how to program base level stuff, and even then he might not be expected to know that because he might not even be getting a job doing that.
On C#, consider that the button is an object, it's not about the event, it's about the function of the object :) And yeah, with pointers in C++ you delete a lot, it's part of using them properly.
I never said C# was faster than C either, btw. I was saying that Delegates make the use of functions more efficient, which is true.
He's not looking to learn how to program drivers and operating systems, he's asking about learning how to program, which isn't going to be how to program an OS, it's going to be OOP and it's going to probably be C++.
I never said that base level programming was going away, I said for programming programs it's obsolete, there's no reason to write a program for Windows in Assembly when you can write it in C++ unless you're a masochist. The performance difference is completely negligible for anything other than base level interaction with hardware.
Quote from: NAMKCOR on July 06, 2010, 07:33:33 AM
My last point isn't incorrect, because you ain't going to get a job programming all of that advanced low level stuff without a damn good resume, and you won't be able to do an entry level job if you don't know OOP.
Procedural programming is considered obsolete for making PROGRAMS. Frameworks and Drivers and etc... that run in the background sure it can be faster, but that's not what he's asking about. He's asking about school and learning to program and what he should be expected to know. He -will- be expected to know OOP. Unless he's going to work for Micro$haft or Nvidia or something he won't be expected to know how to program base level stuff, and even then he might not be expected to know that because he might not even be getting a job doing that.
On C#, consider that the button is an object, it's not about the event, it's about the function of the object :) And yeah, with pointers in C++ you delete a lot, it's part of using them properly.
I never said C# was faster than C either, btw. I was saying that Delegates make the use of functions more efficient, which is true.
He's not looking to learn how to program drivers and operating systems, he's asking about learning how to program, which isn't going to be how to program an OS, it's going to be OOP and it's going to probably be C++.
I never said that base level programming was going away, I said for programming programs it's obsolete, there's no reason to write a program for Windows in Assembly when you can write it in C++ unless you're a masochist. The performance difference is completely negligible for anything other than base level interaction with hardware.
1. Our countries aren't the same, here you can choose your path, all you have to do is go through some tests to see if your skills fit the company.
(Of course this doesn't have anything to do with your point being correct under the USA conditions but just stating something)
2. I thought we stopped caring about what he is asking about, I am not going to tell a programming newbie to learn assembly.
I still encourage c++ and C because knowing procedural programming is important as it lets you get a better understanding about how everything works below surface.
Going Top-down starting with OOP I believe is more confusing.
But that's just my opinion.
3. The button is the object, the trigger is the event.
It's not easy to explain, but assume you want to do something when someone closes to program, yes you can put a huge "While" on main's code and do whatever when user steps out of the while, but isn't it so much cuter when you can trigger something upon a click?
And maybe you'd want to trigger something else based on what happened so far?
Events allow you to add or remove functions to be called inside the actual program part and allow you to call them upon the user's push of the X button on the top right.
It doesn't honestly differ much from oop, and the function pointers did exist back in C but it's a new "line of thought" when you design your program.
But yes this has gone far away from the original point.
Every active programming language is 'technically' event driven, or state driven in logic because that's how humans think. I'm talking about the syntax and structure being Object Oriented, not based around Events.
They teach OOP first because it gets you in the mindset of thinking along with computer logic and it's easier to teach. It makes plenty of sense.
Quote from: NAMKCOR on July 06, 2010, 07:56:03 AM
Every active programming language is 'technically' event driven, or state driven in logic because that's how humans think. I'm talking about the syntax and structure being Object Oriented, not based around Events.
They teach OOP first because it gets you in the mindset of thinking along with computer logic and it's easier to teach. It makes plenty of sense.
-Not really no, In a sense yes but then you could call procedural programming object oriented because numbers are objects and it's not really fitting there now does it?
In event oriented you'll see a lot of functions called "On button click, onMenu1Tab3Open, onTextChange" and so on, An event happens at some point, and any of them could happen at any point, and you response.
This is really the core reason for the return of the function pointers.
I know something might happen, I don't know what will it happen to , how or when, so I'll make sure I have what to do about it.
In normal OOP I usually know what's going to happen and I know how I'll deal with it as I program it.
C# opens a gate but it doesn't force you to go in.
Anything that can be done with delegates in c# can be done with interfaces, keeping it event-free, it's all about designing rather than functionality.
-They teach you Bottm-Up here rather than top-down which is why to me that makes more sense, it's all about your education.
That's because some of the core updating is done automatically in C#, making the logic operate differently. That doesn't change the structure of data storage.
OOP is about the way the data is structured, segmented, and organized, not about the logic employed, or how particular parts of the runtime are handled.
OKAY GUYS, BUMP. lol. Why? I think as I reach closer to college applications and thinking about college, I should really start being a little more serious. So, I decided I wanted to take either Java or C++ and just run with it and see how far I can go.
WHICH TO DO? If anyone's offering any personal help for either language, too, that'd be cool 8D
Personally, I would choose C++.
However, Java has it's own garbage collection, and on some machines, it has been almost as fast as C++.
Yeah, I often hear that C++ is the most used, but then I also hear that Java is, too. >_> And my current conflict is "Minecraft is made in Java!" but then I often hear the "Minecraft should be recoded in C++!"
ba-ba-ba-bamp so I can start while I'm still focused, lol
Java->C->C++->Any Language
Currently learning C++ with my university, some guy talked about pointers so i ignored him
I'll probably go with that since a person with code as his name is saying it, but any particular reason for that? And do you know of any free or "free" sources of learning? P:
Quote from: mastermoo420 on October 04, 2010, 10:19:50 PM
I'll probably go with that since a person with code as his name is saying it, but any particular reason for that? And do you know of any free or "free" sources of learning? P:
Java is lenient with you, itll let you code badly and maybe still work but wont take any shit.
C is a bureaucrat it wants everything done in its own special way.
C++ is easier to learn if youve managed to learn C.
C++ is a nice way of telling you, programming is really easy.
As for resources, try the internet or books.
I pay £0.01 for all my books :V they may be older editions but meh the internet will update me
*snicker* WTH? Code badly? How so? o_O
^ (EDIT: wow, word filter, lol)
Also, is it necessary to learn C before learning C++ or is it worth learning C?
Also, is it possible to buy the books for £0.01 online? ;-; I have PayPal with, like, $2 and that's probably enough, *snicker*.
Delivery hits ya, i pay £2.50 ish deliver for the books, so probably no.
If you learn C youll apreciate C++
oh what theee *snicker* No online books? Drats P: Okay, I'll look around; if you have any specific names that you'd recommend, I'd be delighted!
EDIT: I got "Effective Java 2nd Edition," "Head First Java 2nd Edition," and "Java How to Program, 7th Edition."
I heard the second one I listed was good to start and the first is good to become good. Have you heard of those? P:
EDIT: "Head First Java" seems pretty nice and interesting, and, despite the typo I found early on, I will still look into it unless you say otherwise, Lord Ahref.
I have the Java SDK 6u21. How come javac isn't anywhere to be found? D8
did you set your path variables?
Yeah; I looked inside the /bin folder, and there's not javac in there.
You sure you got the JDK and not the JRE?
Yeah, I would think the file named "jdk-6u21-windows-x64.exe" would be the JDK. Not to be condescending, but I just wanted to tell you that the file I installed was named that, lol.
Just making sure, no javac in your bin folder sounded like a classic JRE install.
You could try installing a slightly older version? Or just googling around and see if anyone else has the same problem?
Also, try re-installing it.
I've tried re-installing. P:
EDIT: Okay, I realized that I only put the x86 path in my PATHs, and that was the JRE. The JDK was in the x64 Program Files. P:
EDIT: No wait, wth LOL my computer only has JRE... wth.
Or just use netbeans?
It has a inbuilt compiler
Okay, for whatever reason, only the JRE installed the first time and JDK didn't... Also, no netbeans for me; the e-book I'm reading recommends I just stick with javac. I know that having an IDE like Netbeans would be good and all, but I kinda want to stick with what the book says mostly because the book wants to teach a good foundation before getting into stuff like that (or so I assume).
Fair enough, but javac is the compiler of java.
So netbeans uses it, you just don't type it in dos.
You can search for javac.exe to see where it has been located. (Or if it has not been installed after all)
You can try looking at BlueJ (http://www.bluej.org/) which is an IDE designed for teaching Java. I have not tried it so I don't know how good it is.
Since you have chosen Java as your first language I suggest you stick to just learning that for a year. (If you can. Who knows you'll encounter in college)
C++ does indeed (still) seem to be the most used language for making games so learning it if that is the direction you want to go will definitely be valuable. I do suggest waiting at least a year before starting to learn it though. That way you won't mix it together with Java.
The key difference between C++ and Java is that C++ is unmanaged and Java is managed. I.e. that you have to care about allocating and freeing memory in C++ while you don't have to in Java. (Made black and white for emphasis. In reality it isn't that black and white)
I think this is a nice discussion about using managed code in games: http://cowboyprogramming.com/2008/02/26/managed-code-in-games/
The article states that Performance is nearly always going to be worse with managed code than it is with native code.
While true for experienced programmers it is often different for new programmers.
There are the optimizations made both by the compiler and the JVM, but I think the main difference is in the memory management.
What is faster? Allocating one block of memory on 64KB and putting objects in there or allocating memory individually for say 1000 objects. (Assuming that the 1000 objects can be stored in 64 KB memory)
Beginners often control memory in a non-optimal way. I think you can see where I am going with this. That the work of beginners often can run faster in Java or C# than in C or C++.
Learning both Java and C++ will definitely be valuable. As will learning other languages than the few named here.
Note that you do not necessary have to know the language used at a job to get it.
Anyway... I wish you luck with learning Java :3
*hugs*
Ahaha yeah, I installed the JDK (with the same installer that only installed the JRE which was kinda weird... LOL), and javac popped up. And thanks for the tips! ^_^
I'm probably going to follow your recommendations and try and learn Java for a year. I'm only a junior right now so I can devote senior year to trying to learn C++! 8D THIS IS PERFECT! Ahahaha.
Well, does anyone want to assist me in my learning of Java? ;-; Because I'm pretty sure I can read these e-books that I "got," but I don't really know what to do after that (probably).
You can try your hand at Project Euler (http://projecteuler.net/).
The problems there are quite math heavy and quite hard so you probably won't be able to solve that many.
On the other hand it may motivate you and you would probably not solve them all before college ends.
You can also look at http://uva.onlinejudge.org/ and http://www.topcoder.com/ which contain a bunch of problems that you can solve.
*hugs*