My first programming language was TeX.  ;-)

I try to steer people to asking a better question, in ways alluded to
in many of the responses.  I often end up replying with "Best for
what?"  If the questioner is asking about best to learn programming?,
then there probably isn't a best language.  (Note, I narrowly missed
using the J-word.)

As Pat says, the basics of programming are present in all of them.  If
the questioner is in a field where statistics is heavily used, then I
would probably say that R is a good choice to start with, because it
will carry them a good way along in the work they are _currently_
doing.  If they say they need to collect data from a lab instrument, I
would more likely say that Python would be the better choice.  Every
once in a while, I meet someone who's working a lab where Fortran
might actually be the best place for them to start, because that's
what their job is going to demand of them.

I also try to point out that choosing a computer language is like
choosing a second human language.  I remember people arguing in school
about whether Spanish or French or German is the "better" language to
study.  The answer here, too, is "It depends."  Is your major interest
in existential philosophy?  Do you want to study chemistry?  Are you
interested in mezoamerican culture in the 18th and 19th centuries?

We may be better off focusing not on how to answer the question of
"What's the best computer language?" but on getting the questioner to
ask a better question?  One that starts with a motivational premise
for learning the language and the goal for learning it.  Clarifying
the motivation and specifying the goals will go a long way to
suggesting the answer to whatever the final question is.  Much of the
time there isn't a "best", as I think we've all agreed, there are just
"good choices".

-- bennet

On Fri, Mar 25, 2016 at 10:32 AM, Pat Schloss <pschl...@umich.edu> wrote:
> I tell people that my only CS course was taught in Pascal (this gets a few 
> laughs) and that I don’t remember any of it. I add that learning Pascal set 
> me up to learn pretty much any language I needed much easier than the first 
> time through Pascal. Finally, I point out that they may learn 
> R/Python/Perl/whatever and struggle with weird syntax and quirks of that 
> language, but the real challenge with programming is learning to think 
> through problems.
>
> Pat
>
>
>> On Mar 25, 2016, at 10:27 AM, C. Titus Brown <ctbr...@ucdavis.edu> wrote:
>>
>> My only suggestion is to maybe point out that Perl is probably not what his
>> students will be using once they leave his group.  But there are many
>> good responses to that.  He may not care that Perl is not being used in
>> industry much anymore, either, but I think this is important for people
>> who don't want to go down the academic trackhole.
>>
>> cheers,
>> --titus
>>
>> On Fri, Mar 25, 2016 at 07:21:02AM -0700, Steve Haddock wrote:
>>> To further digress, What can I say to my old-school collaborator who 
>>> insists on teaching his students PERL, de novo? He claims not to like 
>>> Python's cryptic error reporting. (I agree but there is so much to offset 
>>> this.) I have tried everything including translating his code to Python to 
>>> show how much cleaner it is.
>>> -Steve
>>>
>>> ----- q???b -----
>>>
>>>
>>>> On Mar 25, 2016, at 06:52, C. Titus Brown <ctbr...@ucdavis.edu> wrote:
>>>>
>>>> My usual response to the question of "what programming language should I
>>>> learn?" is:
>>>>
>>>> * Python or R, because those are the two languages being used by many
>>>> computational scientists, being actively developed, and with rich
>>>> existing ecosystems of libraries and tutorials;
>>>>
>>>> * choose between them based on your local friendly help - if you have
>>>> a lot of R folk down the hall, learn R, and vice versa;
>>>>
>>>> * once you know one, you can pick up another language much more easily than
>>>> you might believe;
>>>>
>>>> cheers,
>>>> --titus
>>>>
>>>>> On Thu, Mar 24, 2016 at 04:06:12PM -0700, Maria McKinley wrote:
>>>>> There is also the point of best for what job? Best programming language
>>>>> discussions are mostly just flame wars, and I like to address them by
>>>>> saying there is no best programming language; it depends on the knowledge
>>>>> of the person doing the coding, what they are trying to accomplish, and
>>>>> possibly the environment/what all is available on the particular machine
>>>>> that the code will run on.
>>>>>
>>>>> cheers,
>>>>> Maria
>>>>>
>>>>> On Thu, Mar 24, 2016 at 3:27 PM, Giuseppe Profiti <
>>>>> profgiuseppe+...@gmail.com> wrote:
>>>>>
>>>>>> Related, even if not properly in topic.
>>>>>> While attending the SWC train the trainers course in September, I took
>>>>>> a note about the "just" and how to keep an I-can-do-it attitude in the
>>>>>> learners.
>>>>>> Then, in January, I had the chance to try to be more aware of that
>>>>>> while teaching Python in a Master's degree course (70-80% of students
>>>>>> .usually have a background in biology or biotech).
>>>>>>
>>>>>> Of course that was a different setting: students believe having more
>>>>>> time to grasp the material with respect to a short workshop, they may
>>>>>> be less prone to give up during class, but they could do it anyways or
>>>>>> maybe give up later when you are not there to answer questions.
>>>>>>
>>>>>> Anyways, "what is the best programming language?" is something that
>>>>>> they asked. I have my programming language of choice, but the
>>>>>> demotivation section in SWC guidelines helped in devising a better
>>>>>> answer than "I like that, but you choose whatever you want".
>>>>>> Instead, I told them that the best programming language is the one
>>>>>> they feel more comfortable with. That "if", "for" and functions are in
>>>>>> almost every programming language and that after getting it in python
>>>>>> they could move to something else. And that if someone in their future
>>>>>> place of work would tell them "You should use X because is better!",
>>>>>> they may give it a try, see if they like it and maybe toss it in the
>>>>>> trash bin if not.
>>>>>>
>>>>>> Maybe I was wrong or there may be a better phrased answer. In that
>>>>>> case, a feedback from you would be more than welcome.
>>>>>>
>>>>>> To be in topic: instead of thinking about it as "I must not do that",
>>>>>> those guidelines could also be used as "how can I convey that
>>>>>> information in a better and less threatening way?".
>>>>>>
>>>>>> Best,
>>>>>> Giuseppe
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2016-03-24 22:44 GMT+01:00 Greg Wilson <gvwil...@software-carpentry.org>:
>>>>>>> One approach is to pre-empt it - I make a point of saying in my intro
>>>>>> that
>>>>>>> this stuff is genuinely hard, that I shouldn't imply otherwise by saying
>>>>>>> "just" (or equivalent), and inviting people to keep score.  We can then
>>>>>>> compare everyone's scores at the first coffee break, and since they're
>>>>>> never
>>>>>>> the same, we can then have an interesting discussion about real-world
>>>>>> data
>>>>>>> :-)
>>>>>>> Cheers,
>>>>>>> Greg
>>>>>>>
>>>>>>>
>>>>>>>> On 2016-03-24 5:41 PM, Adam Obeng wrote:
>>>>>>>>
>>>>>>>> Does any one have a tip for how to recover from accidentally doing 
>>>>>>>> these
>>>>>>>> things? I've tried to explain why I'm apologising for saying "just", 
>>>>>>>> but
>>>>>>>> that *just* seems to make it worse.
>>>>>>>>
>>>>>>>> Cheers,
>>>>>>>>
>>>>>>>> Adam
>>>>>>>>
>>>>>>>>> On Thu, Mar 24, 2016, at 05:30 PM, Steven Haddock wrote:
>>>>>>>>>
>>>>>>>>> Yes, I think that is the one. The J-word!!
>>>>>>>>> Thanks Lex.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> On Mar 24, 2016, at 14:22 , Lex Nederbragt <lex.nederbr...@ibv.uio.no
>>>>>>>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> Perhaps this helps? Look for "Things You Shouldn't Do in a Workshop"
>>>>>> on
>>>>>>>>>> http://swcarpentry.github.io/instructor-training/09-motivation.html
>>>>>>>>>>
>>>>>>>>>>  Lex
>>>>>>>>>>
>>>>>>>>>>> On 24 Mar 2016, at 22:02, Steven Haddock <hadd...@mbari.org> wrote:
>>>>>>>>>>>
>>>>>>>>>>> TL;dr Can someone point me to the post about teaching guidelines?
>>>>>>>>>>>
>>>>>>>>>>> A little while ago Greg or somebody posted a set of examples of
>>>>>> things
>>>>>>>>>>> to avoid saying (???You can simply??????, etc).
>>>>>>>>>>>
>>>>>>>>>>> A friend of mine (really!) is teaching a class and she realized she
>>>>>>>>>>> should avoid saying ???You have probably all done X?????? so I was 
>>>>>>>>>>> going
>>>>>> to send
>>>>>>>>>>> her that post, but I can???t find it.
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Steve
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Discuss mailing list
>>>>>>>>>>> Discuss@lists.software-carpentry.org
>>>>>> http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Discuss mailing list
>>>>>>>>> Discuss@lists.software-carpentry.org
>>>>>> http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Discuss mailing list
>>>>>>>> Discuss@lists.software-carpentry.org
>>>>>> http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Dr Greg Wilson
>>>>>>> Director of Instructor Training
>>>>>>> Software Carpentry Foundation
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Discuss mailing list
>>>>>>> Discuss@lists.software-carpentry.org
>>>>>> http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org
>>>>>>
>>>>>> _______________________________________________
>>>>>> Discuss mailing list
>>>>>> Discuss@lists.software-carpentry.org
>>>>>>
>>>>>> http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org
>>>>
>>>>> _______________________________________________
>>>>> Discuss mailing list
>>>>> Discuss@lists.software-carpentry.org
>>>>> http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org
>>>>
>>>> --
>>>> C. Titus Brown, ctbr...@ucdavis.edu
>>>>
>>>> _______________________________________________
>>>> Discuss mailing list
>>>> Discuss@lists.software-carpentry.org
>>>> http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org
>>>
>>
>> --
>> C. Titus Brown, ctbr...@ucdavis.edu
>>
>> _______________________________________________
>> Discuss mailing list
>> Discuss@lists.software-carpentry.org
>> http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org
>
>
> _______________________________________________
> Discuss mailing list
> Discuss@lists.software-carpentry.org
> http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org

_______________________________________________
Discuss mailing list
Discuss@lists.software-carpentry.org
http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org

Reply via email to