news.only-4-geeks.com Forum Index » Programming | Goto page 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28 Next |
|  | Whats the best language to learn... |  | |
| | | Gits |  |
| Posted: Sun Aug 17, 2008 5:12 pm Post subject: Whats the best language to learn... |  |
What's the best language to learn as a beginner, for someone like I who has never programmed in any language before? I'm interested in learning python or c++, which would you say is the least complicated? |
| |
| | | Malcolm McLean |  |
| Posted: Sun Aug 17, 2008 5:12 pm Post subject: Re: Whats the best language to learn... |  |
"Gits" <hamza612@live.com> wrote in message news:
| Quote: | What's the best language to learn as a beginner, for someone like I who has never programmed in any language before? I'm interested in learning python or c++, which would you say is the least complicated?
Don't try to learn C++ as a first programming language. I'm told Python is |
simple, though I have absolutely zero experience with it.
-- Free games and programming goodies. LINK |
| |
| | | Pascal J. Bourguignon |  |
| Posted: Sun Aug 17, 2008 5:12 pm Post subject: Re: Whats the best language to learn... |  |
Gits <hamza612@live.com> writes:
| Quote: | What's the best language to learn as a beginner, for someone like I who has never programmed in any language before? I'm interested in learning python or c++, which would you say is the least complicated?
|
The best programming language to learn as a beginner is probably scheme.
Structure and Interpretation of Computer Programs LINK LINK LINK
How to Design Programs -- An Introduction to Computing and Programming LINK
Concrete Abstractions -- An Introduction to Computer Science Using Scheme LINK
LINK
Then of course, it won't be the only programming language you'll learn, but you won't be a beginner anymore.
I would still learn C and Smalltalk, before C++.
-- __Pascal Bourguignon__ LINK You never feed me. Perhaps I'll sleep on your face. That will sure show you. |
| |
| | | Mensanator |  |
| Posted: Sun Aug 17, 2008 7:45 pm Post subject: Re: Whats the best language to learn... |  |
On Aug 17, 12:12�pm, Gits <hamza...@live.com> wrote:
| Quote: | What's the best language to learn as a beginner, for someone like I who has never programmed in any language before? �I'm interested in learning python or c++, which would you say is the least complicated?
|
Python is a good choice, much less complicated than c++. |
| |
| | | Juha Nieminen |  |
| Posted: Sun Aug 17, 2008 9:54 pm Post subject: Re: Whats the best language to learn... |  |
| |  | |
Pascal J. Bourguignon wrote:
| Quote: | The best programming language to learn as a beginner is probably scheme.
|
Is that a joke?
Functional languages like scheme and haskell may be wonderful for programming gurus and mathematicians (and if you are both, better). However, people who are infatuated with the functional paradigm fail to understand the reality of the human mind.
The average person does not think functionally nor recursively. A recursive definition might be compact and beautiful, but it's not the way the average person thinks about things. It may be how a mathematician and a specialized programmer thinks about (some) things, but not how normal people do. Even a simple compact recursive definition is very difficult for the average person to understand.
The average person thinks about tasks using two elements: Concepts and sequential steps.
A food recipe is the perfect example of this: A food recipe consists of concepts (such as ingredients and measurements) and sequential steps (a list of things what to do, in which order and how).
In programming these two elements have a natural translation: Modules and imperative programming. A module is a concept, and imperative programming is the sequence of steps what to do with those concepts. As much as programming gurus detest imperative programming, it's just the reality that the average person thinks imperatively and understands imperative algorithms easiest.
Many object-oriented programming languages use these two paradigms, ie. modules and imperative programming. Thus it's a logical consequence that a simple, high-level OOP language would be the best for a beginner. (Well, in fact a modular programming language would be enough, but the few modular languages which have ever existed never got very popular, so the next best thing are their big brothers, the object-oriented languages.)
And yes, like "imperative programming", also "object-oriented programming" is nowadays more a swearword than anything else among the know-it-all programming gurus. However, it just works. There's no way around it. It might not be the silver bullet, but it's the best beginner-approachable paradigm we have.
Functional programming is nice, but it just isn't how people think about things.
| Quote: | I would still learn C and Smalltalk, before C++.
|
Hell no! Smalltalk maybe, but C? No, no and a thousand times no!
Make a beginner learn C as his first language and he will struggle to learn good programming for YEARS to come. Just no.
(For the record, personally I just love C++ and it's my language of choice for most things. I also would be able to develop in C if I was forced to (although it would really be a horrible nightmare). However, I would never, ever, ever recommend C for anyone as their first language. Ever.) |
| |
| | | Pascal J. Bourguignon |  |
| Posted: Sun Aug 17, 2008 10:39 pm Post subject: Re: Whats the best language to learn... |  |
| |  | |
Juha Nieminen <nospam@thanks.invalid> writes:
| Quote: | Pascal J. Bourguignon wrote: The best programming language to learn as a beginner is probably scheme.
Is that a joke?
|
No.
| Quote: | Functional languages like scheme and haskell may be wonderful for programming gurus and mathematicians (and if you are both, better). However, people who are infatuated with the functional paradigm fail to understand the reality of the human mind.
The average person does not think functionally nor recursively. A recursive definition might be compact and beautiful, but it's not the way the average person thinks about things. It may be how a mathematician and a specialized programmer thinks about (some) things, but not how normal people do. Even a simple compact recursive definition is very difficult for the average person to understand.
The average person thinks about tasks using two elements: Concepts and sequential steps.
|
Average persons have nothing to do in programming. There are enough jobs at McDonalds for average persons.
-- __Pascal Bourguignon__ LINK In deep sleep hear sound, Cat vomit hairball somewhere. Will find in morning. |
| |
| | | Ben Bacarisse |  |
| Posted: Sun Aug 17, 2008 11:24 pm Post subject: Re: Whats the best language to learn... |  |
| |  | |
Juha Nieminen <nospam@thanks.invalid> writes:
| Quote: | Pascal J. Bourguignon wrote: The best programming language to learn as a beginner is probably scheme.
Is that a joke?
|
I doubt it but then I did not say it. Bear in mind that scheme is supported by an excellent textbook that is available for free online. This is a non-trivial benefit for the person who posted. You don't give you own preference for first language, but few have such a high-quality resource so readily available.
| Quote: | Functional languages like scheme and haskell may be wonderful for programming gurus and mathematicians (and if you are both, better). However, people who are infatuated with the functional paradigm fail to understand the reality of the human mind.
The average person does not think functionally nor recursively. A recursive definition might be compact and beautiful, but it's not the way the average person thinks about things. It may be how a mathematician and a specialized programmer thinks about (some) things, but not how normal people do. Even a simple compact recursive definition is very difficult for the average person to understand.
The average person thinks about tasks using two elements: Concepts and sequential steps.
|
I'll just note that both scheme and Haskell have the notion of sequencing. Scheme needs it because it has assignment and modifiable variables and Haskell uses sequencing to make IO sensible (and then generalises the notion to a whole range of uses).
| Quote: | A food recipe is the perfect example of this: A food recipe consists of concepts (such as ingredients and measurements) and sequential steps (a list of things what to do, in which order and how).
In programming these two elements have a natural translation: Modules and imperative programming. A module is a concept, and imperative programming is the sequence of steps what to do with those concepts. As much as programming gurus detest imperative programming, it's just the reality that the average person thinks imperatively and understands imperative algorithms easiest.
|
I am undecided about what is really easiest but there is a case to be made that it does not matter. If the declarative style has productivity and maintenance benefits then any extra effort required to learn may well pay off in the long run.
-- Ben. |
| |
| | | Arto Viitanen |  |
| Posted: Mon Aug 18, 2008 3:22 am Post subject: Re: Whats the best language to learn... |  |
Mensanator kirjoitti:
| Quote: | On Aug 17, 12:12�pm, Gits <hamza...@live.com> wrote: What's the best language to learn as a beginner, for someone like I who has never programmed in any language before? �I'm interested in learning python or c++, which would you say is the least complicated?
Python is a good choice, much less complicated than c++.
|
I checked Python once to see if it would be suitable language to teach as the first programming language, and it looked fine. We did not take it, but still..
Boo might also be good choise: it has similar syntax to Python, but it uses .NET classes. |
| |
| | | cr88192 |  |
| Posted: Mon Aug 18, 2008 5:12 am Post subject: Re: Whats the best language to learn... |  |
| |  | |
"Juha Nieminen" <nospam@thanks.invalid> wrote in message news:uS2qk.244$7K.59@read4.inet.fi...
| Quote: | Pascal J. Bourguignon wrote: The best programming language to learn as a beginner is probably scheme.
Is that a joke?
Functional languages like scheme and haskell may be wonderful for programming gurus and mathematicians (and if you are both, better). However, people who are infatuated with the functional paradigm fail to understand the reality of the human mind.
The average person does not think functionally nor recursively. A recursive definition might be compact and beautiful, but it's not the way the average person thinks about things. It may be how a mathematician and a specialized programmer thinks about (some) things, but not how normal people do. Even a simple compact recursive definition is very difficult for the average person to understand.
|
it depends on the person I think...
Scheme has some rather useful things to teach people, and is in general a decent language for many things (actually, Scheme and Haskell are sufficiently different languages that I think it better to refrain from lumping them together).
| Quote: | The average person thinks about tasks using two elements: Concepts and sequential steps.
|
well, other people think differently than this: some people think visually or spatially; some people think in terms of grids, tables, and mental queries (almost like a set of SQL-like databases were running in their head); other people think in terms of logic or quotes (odd bastards these, but I have seen them, they argue about wording and pedantic details and readily give arguments in terms of masses of quotations...).
| Quote: | A food recipe is the perfect example of this: A food recipe consists of concepts (such as ingredients and measurements) and sequential steps (a list of things what to do, in which order and how).
|
this example is almost a cliche, however...
| Quote: | In programming these two elements have a natural translation: Modules and imperative programming. A module is a concept, and imperative programming is the sequence of steps what to do with those concepts. As much as programming gurus detest imperative programming, it's just the reality that the average person thinks imperatively and understands imperative algorithms easiest.
Many object-oriented programming languages use these two paradigms, ie. modules and imperative programming. Thus it's a logical consequence that a simple, high-level OOP language would be the best for a beginner. (Well, in fact a modular programming language would be enough, but the few modular languages which have ever existed never got very popular, so the next best thing are their big brothers, the object-oriented languages.)
And yes, like "imperative programming", also "object-oriented programming" is nowadays more a swearword than anything else among the know-it-all programming gurus. However, it just works. There's no way around it. It might not be the silver bullet, but it's the best beginner-approachable paradigm we have.
|
maybe we teach people both C and Java at the same time...
hell, I started out with BASIC, and later went over to C...
and over my life, C++ has become much more dominant, and Java has come along and gotten far more popular as well...
| Quote: | Functional programming is nice, but it just isn't how people think about things.
I would still learn C and Smalltalk, before C++.
Hell no! Smalltalk maybe, but C? No, no and a thousand times no!
Make a beginner learn C as his first language and he will struggle to learn good programming for YEARS to come. Just no.
(For the record, personally I just love C++ and it's my language of choice for most things. I also would be able to develop in C if I was forced to (although it would really be a horrible nightmare). However, I would never, ever, ever recommend C for anyone as their first language. Ever.)
|
C and C++ represent different programming styles, but I don't think necessarily one is "good" and the other "bad".
it just so happens that many people who use C, are not so inclined towards OOP. more so, much of what passes as "good style" by people who are inclined towards OOP, is a bunch of stuff apparently lifted off of Java and then forced onto C++.
however, C++ represents a mix, with some people more on the C end of the spectrum (more where I would fall in the cases when I am using C++), and the Java end of the spectrum (the people who insist on, for example, teh crapload of tiny source files, mixing source and header files in the same locations, only putting a single class per source/header, ...).
or, about OOP vs non-OOP, some problems naturally fit nicely into an OOP-like approach, and other problems fit rather poorly (some problems are actually far more suited, for example, to stack-based processing or large parallel arrays of vectors or numbers).
problem is that people who have been taught in the modern OO regime are made to believe that everything is an object, best hit over the head with classes and interfaces. it is also good to know when not to do this...
actually, another problem more specific to newbs and C++ is the overuse/abuse of certain heavy-weight features (namely operator overloading and templates), where I think it is probably better if people first learn how to not make a big mess out of things by trying to get though problems via excessive use of operator overloading and templates.
now, I do what I personally like, which tends to be more what "makes sense", which is more often more C-like (namely, source files one place, headers in another, and having a much smaller number of somewhat larger source files, typically 500-2000 LOC per file, ...).
more so, there are many cases where there are good reasons to use C over C++ as well (or for that matter, when it makes sense to use opaque procedural APIs between subsystems, ...). |
| |
| | | Bruce C. Baker |  |
| Posted: Mon Aug 18, 2008 7:01 am Post subject: Re: Whats the best language to learn... |  |
"Gits" <hamza612@live.com> wrote in message news:f31da84f-8ac6-4a45-82d2-55d71088636a@i76g2000hsf.googlegroups.com...
| Quote: | What's the best language to learn as a beginner, for someone like I who has never programmed in any language before? I'm interested in learning python or c++, which would you say is the least complicated?
|
Lua
LINK |
| |
| Page 1 of 28 .:. Goto page 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28 Next | |
|
|