Welcome, Guest. Please Login
 
  HomeHelpSearchLogin FAQ Radified Ghost.Classic Ghost.New Bootable CD Blog  
 
Pages: 1 2 3 4 5 
Send Topic Print
Best Programming languages to learn to get a job (Read 36425 times)
Nigel Bree
Ex Member




Back to top
Re: Best Programming languages to learn to get a job
Reply #30 - Jan 28th, 2009 at 8:29pm
 
Rad wrote on Jan 27th, 2009 at 10:38pm:
What are your intuitions?

I gather that survey data indicates that potential candidates generally regard engineering disciplines as offering woefully insufficient compensation for the difficulty of the career path, but why such a perception would exist I wouldn't know (nor what time horizon such candidates are working to).

Rad wrote on Jan 27th, 2009 at 10:38pm:
I feel I might be able to teach the course to the Bug when he gets older, or even some local high school kids, after school, since Newport Beach has many wealthy families.

A noble aim, to be sure. The only reservation would be keeping things at a more "play" level via, perhaps, building stuff with some of the modern introduction kits like the basic stamp for as long as possible. I gather that obsessive study at young ages probably isn't an optimal thing overall for one's development as a well-rounded human being - not that my youth was unpleasant nor ended up going awry, but evidently there's a happy medium to be struck (although I wouldn't have a clue what it is, and don't have to figure it out).
 
 
IP Logged
 

Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: Best Programming languages to learn to get a job
Reply #31 - Feb 1st, 2009 at 1:23pm
 
Quote:
notation devised by logicians in the early 20th century turns out to be able to represent everything that computers can possibly do

BY the term notation, you mean 'programminglanguage(s)?

the notation devised for programming in general, or the notional devised specifically for (as applied to) the L-C?

Seems presumptuous to say (not for *you*, but in general I mean) that we have devised a notation that can do *everything* a computer can possibly do .. no matter HOW powerful .. as if seemingly disregarding all future advances .. no? Already we have reached the final frontier .. in terms of programming notation? A new language combined with a new computer could not do more?

Quote:
integrated into a formal semantic model (in a notation called ML)

Are you using the terms 'notation' and 'programming language' interchangably? (since ML is a programming language, right?)

Quote:
the fact you can represent the behaviour of any programming language in the lambda calculus means that model (which you create so you can prove theorems about it) can also be a program you can run!

Okay, I had to read that over & over (& over & over), but I think I'm starting to catch on (see the light on implications) .. tho I don't yet know enough about programming to see into it very far. Sometimes I have to sleep on these things before I can see into it more clearly.


Quote:
This process could be seen recently in the work on the next revision of Javascript; as changes to the language were proposed

I skimmed the PDF. Does it say the next release/version of ML will more ML-like? If so, WHEN might this occur? ML is one of those languages I hear mentioned when reading about Lisp & Scheme.

Quote:
Lisp (i.e., lambda calculus) interpreter 

You use these terms interchangably here. Is one based on the other?

Quote:
so it's a notation in which it is possible to write an interpreter - the program to implement - any other programming language.

Are you saying the L-C is sort of a universal Rosetta stone of programming languages?

Thanks for the effort. I will revisit as my knowledge of programming increases.
 
WWW  
IP Logged
 
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: Best Programming languages to learn to get a job
Reply #32 - Feb 1st, 2009 at 1:32pm
 
Quote:
those constructs (noun) exists in order to be put together in different ways to construct (verb) bigger things, i.e. programs.

Constructs are like sub-programs that help you build programs? I was thinking they were actually  mini-programs them-selves .. sort of designed to perform a single specific task, or tasks related to a particular topic.

Quote:
just keeping track of what memory is in use can in fact dominate the amount of code written  

Interesting. Sounds like C programmers must become experts in memory management.
 
WWW  
IP Logged
 
Nigel Bree
Ex Member




Back to top
Re: Best Programming languages to learn to get a job
Reply #33 - Feb 1st, 2009 at 5:23pm
 
Rad wrote on Feb 1st, 2009 at 1:23pm:
BY the term notation, you mean 'programminglanguage(s)?

I meant the way the lambda calculus was written; it's a mathematical notation, and so the original form of it was a pretty dense mass of Greek letters. After all, this was before computers and it needed a consise written form just like other elements of mathematics.

Rad wrote on Feb 1st, 2009 at 1:23pm:
Are you using the terms 'notation' and 'programming language' interchangably? (since ML is a programming language, right?)

Actually, like the Lambda Calculus, ML was originally for mathematical proof. Like Scheme, ML-the-programming-language is something that grew out of that.

Programming languages certainly are a kind of formal notation, so it's correct to call them that, although it's more common to use that for classic written mathematical equations - after all we have the word "programs" to apply to programs!

Rad wrote on Feb 1st, 2009 at 1:23pm:
Seems presumptuous to say [...] that we have devised a notation that can do *everything* a computer can possibly do

Not at all; we're talking here about the essence of mathematics itself, which the lambda calculus was created to explore in the first place. Now there are some tricky technical details in there, which you may want to look at somewhat later on.

By the way, things that computers can do in principle is not the same thing as things we currently know how to get them to do in practice (which is more limited). With respect to time and space, there are a whole class of problems which are very hard to solve in practice indeed. If a proof can be constructed which can demonstrate that P=NP then it will set the world on its ear.

Rad wrote on Feb 1st, 2009 at 1:23pm:
You use these terms interchangably here. Is one based on the other?

Yes. Lisp (first proposed ~1958) was basically just a computer version of the lambda calculus (~1936), although actually the first Lisp interpreter in practice didn't match it as closely as it was intended. Lisp is really nowadays best thought of as a name for the entire family of computer languages which are based on the lambda calculus; the details of the differences between them are not that important, you should concentrate just on Scheme.


 
 
IP Logged
 
Nigel Bree
Ex Member




Back to top
Re: Best Programming languages to learn to get a job
Reply #34 - Feb 1st, 2009 at 5:48pm
 
Rad wrote on Feb 1st, 2009 at 1:32pm:
Sounds like C programmers must become experts in memory management.

Actually, it's worse than that. Almost all developers who write code in C/C++ completely and utterly fail to understand memory management at all, which is why they do such a lousy job of it in practice. Doing this manually is a problem that can end up scaling with nearly exponential complexity, so any program of significant size typically ends up instead using techniques that are *less* efficient to avoid this explosion of complexity.

The end result is that for anything non-trivial, it's best to let the computer just figure it out for itself, which is why most programming languages hide the process of reclaiming unused memory as something that no-one should think about. And they are right to do so.

[ Writing a "garbage collector" program itself is quite a challenge, mind you. It's one of the major bootstrapping problems in making a computer language host itself. ]
 
 
IP Logged
 
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: Best Programming languages to learn to get a job
Reply #35 - Feb 3rd, 2009 at 9:30pm
 
Thanks, Nigel. I will  return to this in a few days .. feeling v. bad right now .. cruddy. Haven't felt this lousy in a long time. Makes it hard to focus.

One question that's been bouncing around my brain is a characterization of the skill-set of somebody who works thru the HtDP course. I know you haven't read it, but maybe you could get some idea by looking over the TOC:

http://www.htdp.org/2003-09-26/Book/curriculum-Z-H-1.html#node_toc_start

.. compared to your average-Joe programmer.

I ask cuz I noticed a big jump in my skill-set after reading XHTML/CSS books after I had mucked around ad-hoc for years.
 
WWW  
IP Logged
 

Nigel Bree
Ex Member




Back to top
Re: Best Programming languages to learn to get a job
Reply #36 - Feb 4th, 2009 at 4:09pm
 
Rad wrote on Feb 3rd, 2009 at 9:30pm:
a characterization of the skill-set of somebody who works thru the HtDP course

I couldn't say for a couple reasons.

Reading a book is about three main things; the text itself, the unwritten subtext, and the context brought to it by the reader. The result of that interaction can be all over the map - how deep a subtext is present for instance, and how well the reader perceives it and how it interacts with their context.

With SICP, the subtext of the book is exceptionally rich. Small, apparently throw-away comments made in the text can be alluding to astonishingly deep insights about software and the process of creating it. The people who, like me, rate it as perhaps the best book on software development ever written are people who interacted deeply with that subtext (helped by coming to it with a context which make us receptive to its lessons). Others can find the text itself too frustrating to get there, or don't yet have the context to be able to appreciate the subtext.

Really doing HtDP's potential as a book justice would need a deep reading to dig down into that; taking the time to do the exercises, and really trying to engage fully with it and everything it has to offer. And of course, that's just its potential, which some readers will realise and some won't.

The more general point, is that the reason I recommend this kind of material in the first place is not - or at least shouldn't be - really about skills, in the sense that one might list "I did X for Y time" experience on a resume, but rather the understanding and insight which will underpin continuous growth in capabilities throughout a career.
 
 
IP Logged
 
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: Best Programming languages to learn to get a job
Reply #37 - Feb 14th, 2009 at 3:26pm
 
Quote:
how well the reader perceives it and how it interacts with their context

SICP is an introductory programming course, yes? Which would infer students/learners taking the course would have as their 'context' little-to-no context. Any 'context' would be from self-study, high-school programming courses (not very popular, I believe) and/or math as it applies to programming .. yes? no?

Quote:
The people who, like me, rate it as perhaps the best book on software development ever written

This was an eyebrow-raising statement .. especially coming from someone with your background. Do I understandly correctly by inferring the subtext of what you have said here that you feel SICP is best set aside until someone has a requisite amount/level of experience? (re the 'context' statement made earlier).

Quote:
doing HtDP's potential as a book justice would need a deep reading  

I appreciate your honesty. I think sometimes I feel you know all-things programming .. simply by waiving your hand across a particular text.

I noticed today on this page: http://filehippo.com/download_python/ .. where it said:

Quote:
can be learned in a few days

.. couldn't help but compare that to the HtDP course which supposedly takes a typical college student an entire semester.
 
WWW  
IP Logged
 
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: Best Programming languages to learn to get a job
Reply #38 - Feb 14th, 2009 at 3:33pm
 
Quote:
but rather the understanding and insight which will underpin continuous growth in capabilities throughout a career.

I've read other comments from ppl who've worked thru SICP and made similar comments .. that, even tho they've been programming professionally for years gleaned new insights while reading SICP that allowed them to approach things they previously founded daunting with a new-found ease.

.. which is one of the reasons I am attracted to texts like these. Insight is a beautiful thing, and texts that can catalyze it are valuable .. which I why I like to research books on a topic before spending time reading them.
 
WWW  
IP Logged
 
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: Best Programming languages to learn to get a job
Reply #39 - Feb 14th, 2009 at 3:39pm
 
Quote:
Yes. Lisp (first proposed ~1958) was basically just a computer version of the lambda calculus (~1936), although actually the first Lisp interpreter in practice didn't match it as closely as it was intended. Lisp is really nowadays best thought of as a name for the entire family of computer languages which are based on the lambda calculus; the details of the differences between them are not that important, you should concentrate just on Scheme.

This answered a lot a questions .. many I didn't even know I had. The light went on.
 
WWW  
IP Logged
 
MrMagoo
Übermensch
*****
Offline


Resident Linux Guru

Posts: 1026
Phoenix, AZ (USA)


Back to top
Re: Best Programming languages to learn to get a job
Reply #40 - Feb 14th, 2009 at 6:44pm
 
Rad wrote on Feb 14th, 2009 at 3:26pm:
SICP is an introductory programming course, yes?

In the MIT course videos that you referenced on your blog, the instructor seems to infer that the students in the class have some experience with other languages.  Fortran is mentioned a few times as a language that it is assumed the students have experience with.  So, I don't think that was the first class in the CS corriculum.  I'm most of the way through video 2b, and the focus seems to be on managing complexity and higher order procedures rather than an introduction to new CS students.

The videos show their age with the mention of Fortran.  I don't know anyone who works with that now days.  My mom said she learned it in college and hasn't touched it since, and she manages a small team of programmers using a wide variety of languages (cobal, java, perl...) so I get the impression it has fallen out of favor.  Most of the modern languages I've worked with like C, Perl, and Ruby are all capable of doing the things that the instructor mentions Fortran cannot (such as making combinations of combinations and treating functions like 'first class citizens.')  Although, admitedly, some of them don't do it as seemlessly as LISP seems to.  

In Perl, for example, you cannot make a list of lists, but you can emulate it by making a list of the addresses of other lists.  Same with functions - you can't assign a function to a variable and pass it as a parameter, but you can assign a reference (like an address) to a function to a variable, then pass that variable, achieving much the same effect.

Rad wrote on Feb 14th, 2009 at 3:26pm:
Python ...can be learned in a few days... but compare that to the HtDP course which supposedly takes a typical college student an entire semester

I've been looking at Python a little bit, too.  I think that what they mean is that if you are already familiar with Basic or Perl or something or have a programing foundation, then it would only take a few days to learn the syntax of Python.  I bought Programing Python and have been working through that.  (http://www.amazon.com/Python-Programming-Introduction-Computer-Science/dp/188790...)  It is written as a first semester CS text-book, and the author mentions in the forward that when he teaches from it himself, he doesn't make it all the way through his own book in one semester.  

HtDP is probably along the same lines - the syntax of any language probably only takes a few days worth of time.  It is the concepts of how to design programs that consumes the rest of the time.

(By the way, I'm on the fence about if I'd recommend Programming Python.  It assumes zero experience with programing/scripting/computers and so moves slow for me, but I never did get a proper introduction to CS and still feel like it will be good for me to make sure I've got that foundation.)

Rad wrote on Feb 14th, 2009 at 3:26pm:
Do I understandly correctly by inferring the subtext of what you have said here that you feel SICP is best set aside until someone has a requisite amount/level of experience?

I am very interested in Nigel's answer here, but can also provide my own insight.  I have limited programming experience - I've dabble with it off and on since 5th grade but never taken it seriously.  I'm 2 full lessons into the MIT videos (through video 2b.)  So far, I'm keeping up.  It has not been difficult to understand the lessons.  In fact, there have been times I felt they belabored their point a bit.  So, I think that you could likely understand what is going on.  Now, that doesn't mean you will get the full insight.  That is where I'm interested in Nigel's opinion.

Personally, I think a 'both' approach is best for me.  I'm going to work through the course now and take what I can from it.  In a few years, when I have a more solid foundation, I'll review it again and see what new things I pick up.  I know my physics professor said he had to take Electricity and Magnetism about 3 times over 10 years to *really* know it.  Each time took him to a new level of understanding.  
 
WWW  
IP Logged
 

Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: Best Programming languages to learn to get a job
Reply #41 - Feb 14th, 2009 at 6:52pm
 
Just figured out my first 'program'.

Code:
(define (Fah->Cel f)
 (* 5 (/ (- f 32) 9)))

Was actually harder than I thought. Getting that 9 on the other side after (- f 32) kicked my butt.

Can't really think linearly (Fah minus 32 times 5 divided by 9 = Cel). Have to think .. Scheme-ishly?

Of course it's very easy (obvious) once  you see through it. The 'Duh' factor. =)
 
WWW  
IP Logged
 
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: Best Programming languages to learn to get a job
Reply #42 - Feb 14th, 2009 at 6:59pm
 
MrMagoo wrote on Feb 14th, 2009 at 6:44pm:
I'm most of the way through video 2b

You are kickin' butt. I'm naturally interested to hear your thoughts as you work thru .. especially if you get flashes of intuition ('ah-ha' insights). I mean, you have to sit up and take notice when so many people claim it is the best-ever (introductory?) course on programming. Makes me want to hardware the course into my brain.
 
WWW  
IP Logged
 
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: Best Programming languages to learn to get a job
Reply #43 - Feb 14th, 2009 at 7:03pm
 
MrMagoo wrote on Feb 14th, 2009 at 6:44pm:
The videos show their age with the mention of Fortran.  

They mention it, but don't USE it, right? I think Fortran was a teaching language prior to Pascal, which is what I had (for the second half of CS-1A, after we learned what memory and hard drives and CPUs did).
 
WWW  
IP Logged
 
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: Best Programming languages to learn to get a job
Reply #44 - Feb 14th, 2009 at 7:08pm
 
MrMagoo wrote on Feb 14th, 2009 at 6:44pm:
I know my physics professor said he had to take Electricity and Magnetism about 3 times over 10 years to *really* know it.Each time took him to a new level of understanding.

This is a concept I was discussing recently with a friend .. how the first time thru we establish 'buckets' ( a filing-system of sorts) into which we deposit new info. Each subsequent pass allows us to refine our filing system and deposit more info into each bucket.

Which is why it's easier to learn a new language if you're already know one .. cuz then you already have your buckets (filing system) established from the first language.

It's easier to re-labeled buckets than create an entirely new filing system (for new info). And the better you know a language, the easier it is to learn a new one .. cuz you have a more elaborate and well-defined filing system for your new language's info.
 
WWW  
IP Logged
 
Pages: 1 2 3 4 5 
Send Topic Print