On 12/17/2010 5:10 AM, Parshwa Murdia wrote:
You say correctly, 'The "best" programming language, is the one you
feel most comfortable with, obviously.' As I am new and starting just,
so I guess (with all the suggestions I get and from searching too)
that either Python or C language would be a good start. Pascal is now
less used.
The thing to keep in mind here is what is the purpose of the language
you're choosing for this step in your journey. You are clearly not
going to be writing production software for some time. You are choosing
a language that will serve as a canvas for early-stages learning. At
this point, you probably want to evaluate your tools in terms of their
pedagogic advantages, rather than practical advantages for implementing
working production software.
Keep in mind that many first year programming / computing science
classes use toy languages - purposely kept small to illustrate a few
programming concepts without distracting you with other concepts.
IMHO, a first learning language should introduce concepts including:
* Variables
* Typing of variables (strong typing)
* Arrays
* Data structures
* Boolean logic expressions
* Flow control and looping (if, then, else ; while ; for,to)
* Procedure and / or function calls
* Formal parameters vs. actual parameters
* Recursion
* Equivalence of recursion and iteration
* Compilation
* Compile-time vs. Run-time errors
A first programming language should avoid concepts like:
* Pointers (at least in the C conception of them, breaking the
typing system)
* Dynamic typing
* Polymorphism
* Inheritance
That in mind, my suggestion for a first language would generally be more
similar to Pascal or Modula-2 than C, Python, C++, Java,...
However, I agree with you that programing principles remain the same
for any language, indeed.
Principles remain the same for particular collections of languages. The
principles at play in functional languages (LISP, Prolog,...) are
different than those of procedural languages (Pascal, Modula-2, C) which
are different still from OO languages (C++, Java, SmallTalk, Python) -
though OO shares more with procedural than functional languages.
--
Regards,
Parshwa Murdia
--
users mailing list
users@lists.fedoraproject.org
To unsubscribe or change subscription options:
https://admin.fedoraproject.org/mailman/listinfo/users
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines