Author Topic: [Guide] Which Language To Start With  (Read 28236 times)

0 Members and 2 Guests are viewing this topic.

Offline somegrass

  • /dev/null
  • *
  • Posts: 12
  • Cookies: 0
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #30 on: November 13, 2012, 07:45:49 pm »
Word of advice, don't start with python!! Programming with python too long will make every other language seem tedious and will make learning a new language like c++ or java hell. I started with c++ which is a great language to start with but I would probably recomend starting with Java just because most programmers really dislike Java if it isn't the first language you learn. Then, if you wan't to keep working inside the Java VM you can learn Groovy(or jython)!

Offline bluechill

  • Cybermancer
  • Royal Highness
  • ****
  • Posts: 682
  • Cookies: 344
  • I am the existence in these walls
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #31 on: November 13, 2012, 08:26:37 pm »
Word of advice, don't start with python!! Programming with python too long will make every other language seem tedious and will make learning a new language like c++ or java hell. I started with c++ which is a great language to start with but I would probably recomend starting with Java just because most programmers really dislike Java if it isn't the first language you learn. Then, if you wan't to keep working inside the Java VM you can learn Groovy(or jython)!

1) I learned Java first and I hate it.
2) You should start with C first.  You don't start with Calculus do you? You start with the basic algebra etc. And then learn C++ and then move on to other languages.
3) Please keep your opinion to yourself when you are clearly just stating a personal belief with no evidence to support or disprove anything.
4) The Java VM is pretty terrible, why would you ever want to use it besides true cross platform compatibility?  Also true cross platform compatibility can be accomplished through writing minimal elf loaders for every platform and then writing all your programs as plugins for the loader.  Then, you have true cross platform compatibility as well (at least for one architecture.... but that's not so bad).
I have dreamed a dream, but now that dream has gone from me.  In its place now exists my own reality, a reality which I have created for myself by myself.

Offline somegrass

  • /dev/null
  • *
  • Posts: 12
  • Cookies: 0
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #32 on: November 13, 2012, 09:01:13 pm »
1) I learned Java first and I hate it.
2) You should start with C first.  You don't start with Calculus do you? You start with the basic algebra etc. And then learn C++ and then move on to other languages.
3) Please keep your opinion to yourself when you are clearly just stating a personal belief with no evidence to support or disprove anything.
4) The Java VM is pretty terrible, why would you ever want to use it besides true cross platform compatibility?  Also true cross platform compatibility can be accomplished through writing minimal elf loaders for every platform and then writing all your programs as plugins for the loader.  Then, you have true cross platform compatibility as well (at least for one architecture.... but that's not so bad).
1)It was just a thought
2)Both approaches are pretty much the same when you consider that when learning c++ you pretty much have to learn c before you learn object coding
3)It was obviously an opinion. I was answering which language you should learn first, unless there is some study I don't know about everyone who answers that question is giving their opinion.
4)Agreed. And, that actually sounds like an interesting approach.
 

Offline bluechill

  • Cybermancer
  • Royal Highness
  • ****
  • Posts: 682
  • Cookies: 344
  • I am the existence in these walls
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #33 on: November 13, 2012, 09:13:21 pm »
1)It was just a thought
2)Both approaches are pretty much the same when you consider that when learning c++ you pretty much have to learn c before you learn object coding
3)It was obviously an opinion. I was answering which language you should learn first, unless there is some study I don't know about everyone who answers that question is giving their opinion.
4)Agreed. And, that actually sounds like an interesting approach.
 

Your thought was stated as a fact (an opinion without a qualifier stating it's an opinion).  I did not mean to upset you rather provide evidence contrary to your opinion stated as a fact, disproving your opinion/fact.  You also do not need to learn C before learning C++ as Java is C++ without the vast majority of the C part and you can learn Java just fine.  And yes everyone is however we all also should be providing evidence to support our views.  You have stated no evidence:

Quote
Programming with python too long will make every other language seem tedious and will make learning a new language like c++ or java hell.

Where is the evidence for this?

Quote
I started with c++ which is a great language to start with but I would probably recomend starting with Java just because most programmers really dislike Java if it isn't the first language you learn.

Where's the evidence for this?  Why is this the case?

Quote
Then, if you wan't to keep working inside the Java VM you can learn Groovy(or jython)!

What's so good about those?

If you provide answer to those then it would be an actual discussion and not one of just opinions vs opinions and eventually turn into a flame war.  A discussion is opinions backed up with facts/evidence of something typically or at least a solid argument.  Your argument is seemingly right now: "You should do this because I believe this and I seemingly have no evidence for it."  We both know you have a reason for it :) Please tell us this reason as well.
I have dreamed a dream, but now that dream has gone from me.  In its place now exists my own reality, a reality which I have created for myself by myself.

Offline Daemon

  • VIP
  • Baron
  • *
  • Posts: 845
  • Cookies: 153
  • A wise man fears a gentle mans anger
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #34 on: November 14, 2012, 04:45:09 am »
Honestly bluechill, I'm gonna have to disagree with you about learning C before C++
C++ is more like algebra and C is more the calculus to be honest with you. C++ is much mire readable, and it allows a new programmer to get a solid foundation in proper programming techniques while also giving them an easier transition from english to code. You gotta admit, c++ is much more readable than C for someone whose new to programming.

Its for these reasons most univetsities have c++ or java as their intro course to programming, and I read an article that shows programmers learning c++ first typically outprogram those who learned java as a first language. Ill try to find the article and link it, it was quite the eye opener.


As for java vs c++ I still think c++ wins.
1. Java's syntax doesn't translate well into C or ASM which I believe are necessary languages for any programmer to know.
2. Java seems to peomote some odd/poor programming practices from what I've seen.
3. Java may be widely used, but c++ can do anything java can and I *believe* c++ has more lower level control as to using some ASM code within a c++ program for finer control. And in order to get the same control in java it feels quite a bit.messier to me. that's personal preference though.


I honestly feel like c++ is the best starter language for anyone looking to get into programming. Its a bit of a pain to write quick scripts in due to having to call libs and such which python doesn't. But for anyone serious about bwing a halfway decent programmer I feel you should learn c++ first.

*on my phone sorry for mistakes. Ill edit/elaborate later tonight
« Last Edit: November 14, 2012, 04:47:12 am by Daemon »
This lifestyle is strictly DIY or GTFO - lucid

Because sexploits are for h0edays - noncetonic


Xires burns the souls of HF skids as a power supply

Offline Live Wire

  • Knight
  • **
  • Posts: 189
  • Cookies: 4
  • Up on your Net
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #35 on: November 14, 2012, 07:46:16 am »
I'm pretty sure that we all have our own favortie programming language. Personally, I prefer interpreted vs. compiled. But, I can do both. Both have their own place, and each is designed to do something else. Sure, you can make them do the same thing, but when you have to actually DO something with them, they each have their own strenghts and weaknesses. They were designed to work like that. How about instead of getting mired down in some stupid flame war, you start teaching people your favorite language, and start learning the others.
 
And for gods sake, start with ruby. It dont get easier.
 
**all just MY opinion
"There is no right or wrong, there is only fun and boring."

Offline Deque

  • P.I.N.N.
  • Global Moderator
  • Overlord
  • *
  • Posts: 1203
  • Cookies: 518
  • Programmer, Malware Analyst
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #36 on: November 14, 2012, 12:05:49 pm »
First of all: I am not interested in a flamewar. I do not discuss to win an argument, I discuss to get some insight. Best discussions are the one you can learn from. So this is the only reason I will ask you some questions.
If I get the feeling that this is getting out of hand (turning into something for the purpose of arguing) I will withdraw from the discussion, because I don't want to waste my time with this shit.

we all also should be providing evidence to support our views.

I think you can't find evidence for everything. If you could, there wouldn't be so much flamewars about which language is the best. You also didn't back up all of your statements.

Do you mind to elaborate on this:

Quote
The Java VM is pretty terrible


@Daemon:

Quote
2. Java seems to peomote some odd/poor programming practices from what I've seen.

Can you explain this a little bit?

___________________________________________

Now some of my thoughts: People should see languages as what they are: A tool to achieve something. They are no religion.
Every tool was designed for a certain task. Some are like a swiss army, designed to do everything a bit. Others fill a niche. And that is why there will never be a language that is superior to all other languages. No language can be good at everything.

During arguments people often forget about the purpose the language was designed for. I.e.: There is no need to complain about the fact that Java is bad at low level programming. It was never made for this. You also wouldn't complain that a screwdriver is bad at banging a nail into the wall. Just use the right tool for your task.

There are languages that where designed as beginner languages, designed to learn programming the first time. I.e. Basic. They are worth some consideration in this discussion. Is it good to design a language just for learning in the first place? Is it good to have bicycles with training wheels? That really depends on the person imho. Someone who needs support and fast results to keep the motivation may be better of with an easy language.
Someone who doesn't care about that, who is rather into the challenging stuff, is better off with a language that is more complicated and causes more frustrating situations, but will make you learn more as well.

So if someone asks me which language to learn first, I would ask, what for, how serious and what the personal goals are (becoming a good programmer? getting stuff done?). Only then there might be an answer that actually helps.

Here are a lot of arguments against Java per se, which makes me want to write advantages, just to balance it a little bit. But for now I will leave it like that, because that leads away from the original topic. Although I use Java a lot, it is not my favourite language. I see a lot of flaws, but I have other reasons for that than most people seem to have.

Like I said: It is not that it is slowlier than C can possibly be and that is is bad at low level stuff. That is the tradeoff you have to make in order to get the safety and portability that Java provides. You can't make a language safer without removing control from the programmer. You can't make a language highly portable and with direct low level access at the same time that squeezes every tiny bit of performance you can get. So I don't see these as real arguments. They are only important if you have a certain task to solve, but not if you want to compare languages without any context given.

Quote
As for java vs c++ I still think c++ wins.


Saying C++ is better than Java without any context (a task or a problem to solve) is also like saying a hammer is better than screwdriver.
You have to give it a context to make this sentence valid.

Personal preference shouldn't play a role when advising a language for a beginner. Sometimes I prefer Java just because I am better in it than in another language and I want to get something done without looking up everything (to cut a long story short: it is lazyness). That is personal preference, but should never be an argument for another person to use this language rather than another.
« Last Edit: November 14, 2012, 12:17:03 pm by Deque »

Offline Live Wire

  • Knight
  • **
  • Posts: 189
  • Cookies: 4
  • Up on your Net
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #37 on: November 14, 2012, 02:13:01 pm »
@Deque
 
Couldn't agree more. Thank you :)
 
 
"There is no right or wrong, there is only fun and boring."

Offline bluechill

  • Cybermancer
  • Royal Highness
  • ****
  • Posts: 682
  • Cookies: 344
  • I am the existence in these walls
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #38 on: November 14, 2012, 02:41:46 pm »
Do you mind to elaborate on this:
Quote from: bluechill
Blah Blah Blah removed

The Java VM meaning the Oracle VM.  The Java VM has terrible sandboxing as noted by all the exploits for it lately.  I'll admit, my argument for why the Java VM from Oracle is terrible is a little flimsy but it's from my experience but it has improved.  It used to be worse because I could crash it with simple code which should have been valid but it's improved.

Honestly bluechill, I'm gonna have to disagree with you about learning C before C++
C++ is more like algebra and C is more the calculus to be honest with you. C++ is much mire readable, and it allows a new programmer to get a solid foundation in proper programming techniques while also giving them an easier transition from english to code. You gotta admit, c++ is much more readable than C for someone whose new to programming.

The problem is that in order to learn C++ properly you need to learn C.  C++ is an extension to C.  You don't learn Calculus first which is an extension to algebra in some ways.  I'll make a better argument later, I've got to go.... :P
I have dreamed a dream, but now that dream has gone from me.  In its place now exists my own reality, a reality which I have created for myself by myself.

Offline Daemon

  • VIP
  • Baron
  • *
  • Posts: 845
  • Cookies: 153
  • A wise man fears a gentle mans anger
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #39 on: November 14, 2012, 07:31:30 pm »
@Deque
First off the poor programming practices is implied by the article.I'm trying to find.to link.

Second.java vs c++ wins in.tthe context of a first programming language to learn. Which is what my entire post was about.... I feel like you missed the point of it. I wasn't bashing on java, just pointing out why I feel its better to start with c++ than java.


@bluechill

Yes in order to understand c++ in and out you may need C first, but its entirely possible to get a good solid programming foundation in c++ before learning C as it makes the transition easier. that's how my university and most in California do it, and I feel like the students benefit from it. Even.ones who are horrible programmers were still able to quickly pick up a second language the following semester as c++ provided such a good foundation.
Keep in mind bluechill, not everyone is as smart as you and able to just jump into a new language like ASM and promptly understand it. The rest of us mortals take a bit longer to wrap our heads around things
This lifestyle is strictly DIY or GTFO - lucid

Because sexploits are for h0edays - noncetonic


Xires burns the souls of HF skids as a power supply

Offline Deque

  • P.I.N.N.
  • Global Moderator
  • Overlord
  • *
  • Posts: 1203
  • Cookies: 518
  • Programmer, Malware Analyst
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #40 on: November 15, 2012, 09:10:41 am »
@Deque
First off the poor programming practices is implied by the article.I'm trying to find.to link.

Would be really great if you find that. That sounds interesting.

Second.java vs c++ wins in.tthe context of a first programming language to learn. Which is what my entire post was about.... I feel like you missed the point of it. I wasn't bashing on java, just pointing out why I feel its better to start with c++ than java.

I took that into consideration, but as far as I am able to see the points given have nothing to do with teaching/learning except for the one I asked you about (poor programming practice). So I either didn't understand it right or you argue out of context.

Quote
1. Java's syntax doesn't translate well into C or ASM which I believe are necessary languages for any programmer to know.

How does any syntax translate well into ASM? C might be closer than other languages, but it also doesn't translate well. You still have to learn ASM in order to be able to read it.

For every language you will find another one that is worth knowing and that doesn't translate well into it. That's why you should learn several languages that use different programming paradigms, so you can deal with the common concepts of programming languages, read almost every language and learn them fast. One language is not enough. Most people don't even try declarative programming, which is in my opinion a bit sad.
« Last Edit: November 15, 2012, 09:30:25 am by Deque »

Offline lucid

  • #Underground
  • Titan
  • **
  • Posts: 2683
  • Cookies: 243
  • psychonaut
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #41 on: November 20, 2012, 06:43:40 am »
Is this what you were talking about Daemon? It's a little paper about the "Pitfalls of Java as a first language"

You might find this interesting Deque - http://upload.evilzone.org/download.php?id=9459979&type=rar
"Hacking is at least as much about ideas as about computers and technology. We use our skills to open doors that should never have been shut. We open these doors not only for our own benefit but for the benefit of others, too." - Brian the Hacker

Quote
15:04  @Phage : I'm bored of Python

Offline Daemon

  • VIP
  • Baron
  • *
  • Posts: 845
  • Cookies: 153
  • A wise man fears a gentle mans anger
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #42 on: November 20, 2012, 07:04:51 am »
Is this what you were talking about Daemon? It's a little paper about the "Pitfalls of Java as a first language"

You might find this interesting Deque - http://upload.evilzone.org/download.php?id=9459979&type=rar

Not the exact article, but the excerpt about the Texas A&M school was from the article I read. I seem to remember reading it as a webpage, just a short article. But that's essentially what his article boiled down too (searched the webs just now and still couldn't find it, maybe I have a memory leak :P )

And he has a valid point, Java is a great language and has it's uses, just not as a first language to learn lol

Also from this guy (dudes got some great papers):
http://cacm.acm.org/magazines/2010/1/55760-what-should-we-teach-new-software-developers-why/fulltext


His personal website here:
http://www.stroustrup.com/

Thank you lucid for finding this <3
This lifestyle is strictly DIY or GTFO - lucid

Because sexploits are for h0edays - noncetonic


Xires burns the souls of HF skids as a power supply

Offline Deque

  • P.I.N.N.
  • Global Moderator
  • Overlord
  • *
  • Posts: 1203
  • Cookies: 518
  • Programmer, Malware Analyst
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #43 on: November 20, 2012, 02:16:10 pm »
Thanks to you both for providing article and links. :)

Edit: I read the paper that lucid uploaded and I think it is pretty good. This is probably the essence:

Quote
a competent
programmer is comfortable with a
number of different languages and that the
programmer must be able to use the mental
tools favored by one of them, even
when programming in another. For example,
the user of an imperative language
such as Ada or C++ must be able to write
in a functional style, acquired through practice
with Lisp and ML1, when manipulating
recursive structures. This is one indication
of the importance of learning in-depth a
number of different programming languages.
« Last Edit: November 20, 2012, 05:18:17 pm by Deque »

Offline rasenove

  • Baron
  • ****
  • Posts: 950
  • Cookies: 53
  • ಠ_ಠ
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #44 on: December 23, 2012, 06:28:51 pm »
I have a few questions:

1. How do you judge if a language is powerfull or not? 
2.Wats the fiddsence between script and program language?
3.If i want to learn c++, then witch program should use. I have visual studio 2012, will it do?
4. Will visual studio be enough to program in java ,c ,c++
My secrets have secrets...