[BangPypers] how to learn programming

venkata subramanian venkatasubramanian at gmail.com
Wed Jan 21 23:12:49 CET 2009

There is a distance between an algorithm (its pseudocode) and implementation.
This distance is lesser for (a class of or many classes of) algorithms
in one language
than the other due to the language level abstractions offered by the language.
This reduced distance greatly helps a new algorithms student who want to try
out ideas and see them work.

The trade-off might be that you might great a better performing implementation
with the language with lesser abstraction. But, that does not matter
for the student who
is learning algorithms and data structures.

But, once she gets the hang of it, she might proceed to learning about
optimizing it.


On Wed, Jan 21, 2009 at 4:04 PM, Anand Balachandran Pillai
<abpillai at gmail.com> wrote:
> Algorithms are mathematical descriptions of solving
> a problem. Algorithms can be illustrated in pseudo code
> and proved using algebra and discrete mathematics.
> It is important not to confuse between an algorithm
> and its implementation in a programming language.
> It is true that some languages are more suited to
> solving problems in a certain way, than others. Due
> to the language elements supported by different
> languages, solutions might vary.
> For example, many things can be done in C++ templates,
> for which you may not be able draw parallels in other languages.
> A lisp algorithm might look more "elegant" in the eyes
> of a Lisper than anything else. A Pythonista might swear
> for the beauty of his code over similar C/C++ code.
> These are just variations in viewpoint and don't
> illustrate anything fundamentally different between the
> languages.
> Programming languages are tools to solve problems.
> Most often, a language might be more suitable to the
> problem at hand than other ones. This is often determined
> by things like time & cost constraints, skill availability,
> freely available software in that language, performance
> considerations etc than any perceived superiority of
> the language.
> I never understood language wars. Got a programming
> language you love, good. But such comparisons are frankly
> a waste of time...
> --Anand
> On Wed, Jan 21, 2009 at 11:49 PM, Sridhar Ratnakumar
> <sridhar.ratna at gmail.com> wrote:
>> On Tue, Jan 20, 2009 at 10:37 PM, Venkatraman S <venkat83 at gmail.com> wrote:
>>> A language is a tool to solve a problem. Each of the problem(s) has its own
>>> characteristics, which makes us to choose one among the many languages
>>> around - and hence the choice of the best tool to solve that problem.
>> I'd add that practically the best tool depends on not just technical
>> criteria but also the tool familiarity and willingness of the
>> developers to learn a new tool.
>> Also, while languages can be /just/ tools to solve problems, the
>> choice of a programming language during the learning phase greatly
>> affects your programming skills. For example, programming abstractions
>> are best studied by using, say, any of the Lisp family of languages
>> but not C or C++.
>> "Programs must be written for people to read, and only incidentally
>> for machines to execute." - Abelson & Sussman
>> _______________________________________________
>> BangPypers mailing list
>> BangPypers at python.org
>> http://mail.python.org/mailman/listinfo/bangpypers
> --
> -Anand
> _______________________________________________
> BangPypers mailing list
> BangPypers at python.org
> http://mail.python.org/mailman/listinfo/bangpypers

More information about the BangPypers mailing list