[wplug] Best programming language for beginner?

Brian Makin merimus at gmail.com
Fri Feb 22 12:34:18 EST 2013


There are two main schools of thought here, top down or bottom up.
Top Down is that you learn the barest possible tech.  dynamic languages,
libraries for everything, no memory management etc etc etc.  This lets you
start doing something fast... but you don't really know what you are doing.
 But in many cases you don't really care.
The second is bottom up where you learn how things work, then compose those
things.

ex: You don't need to know how a hash table works to use a dict in python.
 Of course you won't know when the right time to use one is, the
performance characteristics, or how to implement a variant if you need one.
 But if you first learn low level datastructures then you can use any
library function you come across safely.


On Fri, Feb 22, 2013 at 12:05 PM, Pat Barron <pat at lectroid.com> wrote:

> Coming into this a little late, but I'll echo what others have said - it
> really depends on what you want to accomplish.
>
> For someone interested in learning the "craft" of programming, coming in
> as a beginner, I would recommend that they start with a simple
> imperative or procedural programming language that is not strongly
> typed.  Among other things, this will help you build the mental
> discipline of taking a larger problem and breaking it down into smaller
> chunks.  In terms of modern languages, Python is probably good here, and
> is also a reasonable choice because you can easily use it to do real
> work on Linux.  But to be honest (and you'll probably think I'm insane,
> but here it is anyway...), I would probably recommend to anyone that
> they start with a language like Lisp.  It's *very* simple.  Because it's
> so simple, it really makes you think about the problem you're trying to
> solve, and it makes you learn a lot of things about modularization and
> code reuse. Admittedly, there are a lot of things that are difficult to
> do in such a language, but I think a certain amount of having to deal
> with stuff like that is valuable because it makes it much easier to
> understand why some features of more "complicated" languages are there -
> it's easier to understand if you're previously encountered the problems
> that those language features are attempting to solve.
>
> I personally love the C family of languages, and I believe I'm most
> productive in them.  But I would hesitate to recommend them to a
> beginner as a "learning language".  There are a lot of ways to shoot
> yourself in the foot accidentally if you're not careful, which you need
> to be aware of (and that kind awareness, in my experience, most easily
> comes from exposure to other kinds of programming).  But, to paraphrase
> a common maxim about the Unix philosophy, "C doesn't stop you from doing
> stupid things, because that would also stop you from doing clever things".
>
> Now, of course, you're not an absolute beginner, so you've already been
> exposed to some basic concepts - and you want to hit the ground running
> and be able to contribute to various projects and/or solve certain types
> of problems.  Unfortunately (sort of...), if your main goal is to work
> on modern web-based applications, the one language you absolutely have
> to learn is Javascript - it's actually a fairly complete programming
> language in itself, though of course it's most commonly used on the web,
> inside of a browser.  And there's also a whole package of stuff that you
> need to learn along with it, including HTML, CSS, and DOM.  Javascript
> in web applications uses a more asynchronous, event-driven programming
> model than you might be used to, and that can be challenging to wrap
> your head around if you're used to a programming environment where the
> flow of control through an application basically follows a predetermined
> path.  It just takes some getting used to.
>
> Javascript and friends are primarily used in web applications to create
> the user interface.  What is used on the server side is largely up to
> you.  As others have pointed out, Ruby is a common choice here (as are
> Python, PHP, etc.).  And if whatever project you're going to be working
> on is built using a particular application framework, then you may not
> have much choice about what language you use.  For instance, Loomio
> (which you mentioned before) is built using the Rails framework.  And if
> you're using Rails, that means Ruby, and the various tools that support
> it.  But if you're not using a framework, you could even build the
> back-end of a web application using shell scripts (and I've actually
> done stuff like that)....
>
> I'm not sure if that helps you at all, or just muddies the waters even
> more.  ;-)
>
> --Pat.
>
> _______________________________________________
> wplug mailing list
> wplug at wplug.org
> http://www.wplug.org/mailman/listinfo/wplug
>


More information about the wplug mailing list