A programming language for learning (Was: Re: )

Alan Dayley alandd at consultpros.com
Sat Feb 20 19:12:52 MST 2010


Every language has strengths and weaknesses.  Some one wanted the
strengths and so designed the language for that reason.  Python is
appropriate for many things and not appropriate for many others.  So
is any other language.

Mike wanted a suggestion for learning a language.  Python is an easy
language to start with because:
- the learner can see results quickly for encouragement.
- there is an excellent community to support the learner.
- there is a large body of libraries (modules) to add interesting
functionality quickly.
- there is a large body of documentation, tutorials, etc. available
online and in print.

Does using Python cause bad habits that may hinder the learner when
attempting to use other languages or creating other types of programs?
 Probably, depending on the next language and application.  The same
can be said for any other programming language.

For example, my career has mostly involved developing embedded
executables in low resource environments.  Only recently has any
object-oriented compiler reached a point where coding such systems
using OO principles makes sense.  Sometimes, in low resource target
environments, all kinds of taboo coding behaviors are necessary.

So, if Python is not appropriate in your experience, which language or
languages would you suggest for a first-time, self-learner?  Why?

BTW, there are several "How to think like a computer scientist" books,
each centered on a different language.  They are very good.  So, if
Python is not the one, go with Java or C++
(http://www.greenteapress.com/)

Alan

On Sat, Feb 20, 2010 at 6:29 PM, Kevin Fries <kfries6 at gmail.com> wrote:
> Wow, now I know why it is so hard to hire people that are competent!  Python is fun, not right, but fun... Thats your argument?  If you want to know why we refuse to hire Python programmers at our company, I can give you real facts on why you should not use that language as a place to learn... Not opinions.
>
> Kevin
>
> Sent from my Nokia phone
> -----Original Message-----
> From: Joshua Zeidner
> Sent:  02/20/2010 4:17:23 PM
> Subject:  Re:
>
> On Sat, Feb 20, 2010 at 4:13 PM, Joshua Zeidner <jjzeidner at gmail.com> wrote:
>>  Seems like we have a lot of opinions here.  Here is a paper from ACM
>> on the use of Python in for teaching programming.
>>
>>    http://portal.acm.org/citation.cfm?id=114017
>
>  sorry wrong link:  http://portal.acm.org/citation.cfm?id=1140123.1140177
>
>       -jmz
>
>>
>>  -jmz
>>
>>
>> On Sat, Feb 20, 2010 at 4:01 PM, Austin William Wright
>> <diamondmagic at users.sourceforge.net> wrote:
>>> Alan Dayley wrote:
>>>> Python.
>>>>
>>> Absolutely NOT PYTHON. It breaks the first two rules of programming, the
>>> assignment operator (=) assigns values to a variable, and always ignore
>>> whitespace. Well my first two rules, at least. Plus it sucks at
>>> consistent use of object-oriented programming.
>>>
>>> If you *really* need a general-purpose programming language, look at
>>> Ruby, it's slightly more well behaved. Slightly. I would recommend
>>> Javascript, it's a major programming language, and you can run it in
>>> your web browser with literally nothing to install. Plus Javascript is
>>> closely related to XML and HTML, while not programming languages, are
>>> markup languages (a way of storing data) that is becoming very important
>>> to know for many things. Though designed for the web, many of these
>>> things are finding themselves become part of everyday computing,
>>> especially XML. For these things, http://www.w3schools.com/ is popular.
>>>
>>> Any scripting language might be a good start at learning about
>>> if/then/else logic, but none of these languages are going to teach how
>>> computers really *process* or *store* information on the inside (how the
>>> CPU executes the program or how variables are stored in memory), or for
>>> that matter write an actual interactive computer program, you will need
>>> a real language like C or C++. After learning something like Javascript
>>> you will find C surprisingly limited in functionality if you try and do
>>> things the same way, especially variable-length variables like strings
>>> and arrays. Keep that fact in the back of your head for when, if, you
>>> attempt C/C++.
>>>
>>> Whatever you do, Google "<x> tutorial" should bring up something good.
>>> In the way of books, however, you can't miss ones from O'Reilly (
>>> http://oreilly.com/ ), they are jade/teal and have a random animal on
>>> the cover.
>>>
>>> Austin Wright.


More information about the PLUG-discuss mailing list