Welcome, Guest. Please Login
 
  HomeHelpSearchLogin FAQ Radified Ghost.Classic Ghost.New Bootable CD Blog  
 
Pages: 1 2 3 ... 5
Send Topic Print
Best Programming languages to learn to get a job (Read 36012 times)
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Best Programming languages to learn to get a job
Jan 18th, 2009 at 6:27pm
 
What are the best programming languages to learn (assuming you know squat) in order to get a job? (most employable)

Or, if there is a heirachy, what would the learning-path look like?

How would this differ from languages that are FUN/COOL to learn?
 
WWW  
IP Logged
 

Nigel Bree
Ex Member




Back to top
Re: Best Programming languages to learn to get a job
Reply #1 - Jan 19th, 2009 at 12:41am
 
Wait a sec, didn't you just get a job? That probably puts you closer to the market reality of what's being looked for than anyone else right now!

Rad wrote on Jan 18th, 2009 at 6:27pm:
Or, if there is a heirachy

There is, but remember that the field of software is now mighty big (so that the range of talents companies need covers a wide range of specific technologies and ranges of ability), and also subject to manias and fashion and supply constraints and all kinds of of things. Also, it has to be asked what length of gig are you wanting - the old "where do you see yourself in X years?" question.

And of course, it's worth bearing in mind that in terms of the employment-market aggregate, companies are in a feedback loop in that what most firms want are employees that are cheap and easily replaceable, and so many companies tend to only pursue technologies in which it is (perceived to be) easy to hire folks easily and cheaply at some point in time.

Indeed, the more "mainstream" technologies which tend to be the ones more companies seek are typically the very ones that are easiest to learn superficially, thanks to this feedback loop. Which is all very well, but doesn't always make for a lasting career or a personally satisfying one.

Rad wrote on Jan 18th, 2009 at 6:27pm:
How would this differ from languages that are FUN/COOL to learn?  

Well, if you find programming fun and cool, then you have an intrinsic motivation to learn that can over time move you far beyond the abilities of anyone who is just phoning it in every day for the money.

To get to the higher levels of ability you really have to learn lots of languages anyway, so in a sense it doesn't matter which one you pick; following the ones you enjoy makes it easier to get good at it, since if you're enjoying the process every step of the way you'll sustain the pace of learning for the years it takes to get to the higher levels of ability.

By the way, I can't remember if I've linked to these before but if you're feeling keen, you can always have a look through these to see if you're ready for Lisp yet. If you aren't it's no biggie, but eventually you will be and it will change the way you think.
 
 
IP Logged
 
Rad.Test
Technoluster
***
Offline


Rad's non-Admin test-profile
in Firefox

Posts: 108


Back to top
Re: Best Programming languages to learn to get a job
Reply #2 - Jan 19th, 2009 at 10:43am
 
Quote:
Wait a sec, didn't you just get a job?

It's not a done deal. Only had an interview. But talking to them made me think. For example, they use .NET and not PHP.

I will peruse your links.

The problem I think is that there are so many options/avenues/paths/languages that I'm not sure which represents a wise decision.

What about LISP makes you single it out?

Speaking of cool stuff, have you ever looked into 'Certified Ethical Hacker' stuff? That seems like cool stuff.
 
 
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 #3 - Jan 19th, 2009 at 1:21pm
 
Rad.Test wrote on Jan 19th, 2009 at 10:43am:
Speaking of cool stuff, have you ever looked into 'Certified Ethical Hacker' stuff? That seems like cool stuff. 

Ya, that's really cool stuff.  But really, I think any talented coder could figure out all the hacking stuff pretty quickly.  Most of 'computer security' is just making sure your services are configured correctly to only allow access to people who should have it.  Finding true 'Zero Day' security holes usually requires a throughal understanding of the code.  Either that, or a deep understanding of cryptography theory, which is better covered by advanced math than the 'White Hat Hacking' courses. 

So, its cool stuff (and really, really interesting) for someone on the adminstrator level or someone trying to get started in security, but I think you are just as well served learning about proper system administration and/or programing languages than reading things that focus on hacking.  Of course, hacking stuff (in an academic environment, of course) can be tons of fun, and fun things are easy to learn, so there's something to that.
 
WWW  
IP Logged
 
Nigel Bree
Ex Member




Back to top
Re: Best Programming languages to learn to get a job
Reply #4 - Jan 19th, 2009 at 10:33pm
 
Rad.Test wrote on Jan 19th, 2009 at 10:43am:
But talking to them made me think. For example, they use .NET and not PHP.

Well, .NET isn't a language per se, it's better described as a platform - one which encompasses a lot of languages. Although C# does have a slightly "special" status in the .NET world, that's really only due to it being a well-designed language that Microsoft control the specification of, so they can evolve it at the pace and in the direction they want.

In fact, there's no reason that PHP source code won't translate and run in .NET just fine if someone bothers to write a compiler and create a small class library to provide emulation goo for some of PHP's particular idiosyncrasies. It's not even conceptually hard to do; the only reason such things are "hard" in practice is the sheer volume of grinding minuscule detail where some script depends on some particular implementation bug that has ended up being codified as "how the language works".

[ That's true of most language implementations, by the way. You can write a parser and an compiler for most languages of the order of complexity of, say, Javascript in no time at all. Being compatible with all the odd quirks of the run-time library will take more than ten times as long and be not much fun at all. ]

Rad.Test wrote on Jan 19th, 2009 at 10:43am:
What about LISP makes you single it out?

I've mentioned before that the lamba calculus is the mathematical soul of computing. Lisp was pretty much just a directly executable version of that, although over the years (remember, it's over 50 years old now) it grew into something of a behemoth; Lisp supported meta-programming, so could easily adapt to any new idea that came along, and did...

The particular variant of Lisp used by Harold Abelson and Gerald Sussman in those video lectures is a "pure" subset of the Lisp language called Scheme which cleaves more exactly to the Lambda calculus, and has been deliberately kept small (the language could be completely defined in about 30 pages), so that their great book and the course they taught could focus more on teaching the essence of programming, not merely a programming language.

This lovely series of blog articles from someone beginning to wrestle with this material is well worth looking at, by the way, to get a flavour of why it's different, and hard, and worth it.

Rad.Test wrote on Jan 19th, 2009 at 10:43am:
have you ever looked into 'Certified Ethical Hacker' stuff?

Meh, that's simple script kiddy stuff. But then, pretty much "certified" anything in the computing field is like that, just the most superficial elements thrown into a multiple-choice trivia test.

Now you could quite justifiably call that snobbery. But it's also true, and you'll find that it's pretty typical opinion of all these kinds of silly certifications. They exist only to impress HR people. Don't bother.
 
 
IP Logged
 
Pleonasm
Übermensch
*****
Offline



Posts: 1619


Back to top
Re: Best Programming languages to learn to get a job
Reply #5 - Jan 20th, 2009 at 12:16pm
 
Quote:
…see if you're ready for Lisp yet. If you aren't it's no biggie, but eventually you will be and it will change the way you think.

This is not an exaggeration. If you have not yet been exposed to Lisp, you can’t really appreciate how different it is from most other programming languages - and, can’t fully appreciate how “it will change the way you think.”
 

ple • o • nasm n. “The use of more words than are required to express an idea”
 
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 #6 - Jan 21st, 2009 at 5:32am
 
Quote:
This lovely series of blog articles from someone beginning to wrestle with this material is well worth looking at, by the way, to get a flavour of why it's different, and hard, and worth it.

yeah, been there a while. interesting reading .. even the stuff i don't understand .. takes programming to another level i did not know existed. altho i'm even more confused now about where would be the best place to start.

i was imediately interested after reading his byline .. 'learning by doing'.

even the beginning of this was helpful in understanding programming:

http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-9.html#%_chap_1

i am just starting to see the difference between programming and programming languages.
 
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 #7 - Jan 21st, 2009 at 12:59pm
 
It would seem WHAT you learn (regarding programming & programming languages), and the ORDER in which you learn them .. would have a significant effecxt on how you develop as a programmer, yes?

What are you thoughts along this line .. knowing what you know now .. as to best way to proceed?

I keep hearing that C is a "gateway" language .. which is why universities normally start there.

Then I saw a reference to this book:

http://www.amazon.com/Primer-Plus-5th-Stephen-Prata/dp/0672326965/

I keep hearing how cool Ruby/Rails is/are. What would be the wisdom of starting there?

I don't want to learn (start with) bad habits.
 
WWW  
IP Logged
 
Rad.Test
Technoluster
***
Offline


Rad's non-Admin test-profile
in Firefox

Posts: 108


Back to top
Re: Best Programming languages to learn to get a job
Reply #8 - Jan 21st, 2009 at 4:22pm
 
Quote:
By the way, I can't remember if I've linked to these before but if you're feeling keen, you can always have a look through these to see if you're ready for Lisp yet.

Would this be a valid starting/launching point?
 
 
IP Logged
 
Rad.Test
Technoluster
***
Offline


Rad's non-Admin test-profile
in Firefox

Posts: 108


Back to top
Re: Best Programming languages to learn to get a job
Reply #9 - Jan 21st, 2009 at 4:46pm
 
Interesting read .. 'far beyond'

http://query.nytimes.com/gst/fullpage.html?res=9D00E1DC1F3DF932A25753C1A96295826...

Quote:
The most contentious claim made by Dr. Ericsson is that practice alone, not natural talent, makes for a record-breaking performance. "Innate capacities have very little to do with becoming a champion," said his colleague, Dr. Charness. "What's key is motivation and temperament, not a skill specific to performance. It's unlikely you can get just any child to apply themselves this rigorously for so long."
 
 
IP Logged
 
Nigel Bree
Ex Member




Back to top
Re: Best Programming languages to learn to get a job
Reply #10 - Jan 21st, 2009 at 5:57pm
 
Rad wrote on Jan 21st, 2009 at 12:59pm:
It would seem WHAT you learn (regarding programming & programming languages), and the ORDER in which you learn them .. would have a significant effecxt on how you develop as a programmer, yes?

An influence on the path you take, absolutely. But it's only that, an influence, and the magnitude of that influence is really more down to individual factors.

For instance, whenever starting out, whether you're told it explicitly it not you'll develop your own idea of "how the computer works". And that mental model, being something you are just inferring from the tiny amount you've been told, will be at best very incomplete and at worst wildly inaccurate (although still useful at the time). As you learn more, you need to expand and correct that understanding as you get more information.

Well, some folks have a much harder time doing that than others. They cherish their beliefs over and above any kind of external reality that is later presented to them; the cognitive phenomenon called confirmation bias is something that we are all subject to to some extent, but in many folks this is true to a pathological extent such that they basically stop being able to learn. Time and the pace with which you adopt new ideas is also a factor here; how deep a rut our our mental wheels have cut by treading the same ground over and over.

In the more extreme cases, you have ideas which the only way to accommodate is by undergoing a paradigm shift; an idea so powerful that it casts everything you thought you knew and understood before into a new light. For many people, the material in a book like SICP is impossible because it does that. Others will welcome that transformation.

Personal story time: I began, as I believe I've mentioned, with the Apple ][ when I was 13: BASIC, 6502 assembly language, Pascal (and doing non-trivial things with those) and then when I was 14 I added FORTRAN 77 and FORTH and Z80 assembly language and learned floating-point math by studying the disassemblies of the Apple ][ ROMS and started to teach myself calculus (which lead to the Taylor or Maclaurin series expansions used in computer math) and ... essentially, I just had a thirst to learn everything there was to learn about computers.

I didn't read SICP and learn Scheme until a decade later (during which time I'd done a large amount of stuff; learned dozens more programming languages and many more processors and written development tools and complete operating systems and designed embedded systems and applications and ... well, a lot).

Learning the lambda calculus was certainly was a powerful revelation, but it wasn't hard to make. Indeed, it was more euphoric, a feeling of ... completion; that this was an understanding I had been looking for all along, that could tie all that past experience together into a unified whole. I'd always have reached that point. The specifics of what I did before in what order don't really matter that much, because none of it held me back.

Note that has never been a time I was satisfied with what I had already learned or done. There's always one more peak to conquer, and something new to try, and everything I've tried I'd done something new to me (and thus at the end, knowing more than at the start and thus I could have done it better than I ended up doing). I'm slowing down a little now, mind you Smiley, but I'm still aware of what I have yet undone.

Quote:
“Ah, but a man's reach should exceed his grasp, or what's a heaven for?"
-- Robert Browning

As long as you have and retain the ambition to learn more and do more, that's the thing. Solve today's problems - what they are or the means is less important than making the attempt, and in doing so stretch yourself and never be satisfied with what you've done thus far.
 
 
IP Logged
 

Nigel Bree
Ex Member




Back to top
Re: Best Programming languages to learn to get a job
Reply #11 - Jan 21st, 2009 at 6:22pm
 
For some reason, I keep running over the ~4k post length limit....

Rad.Test wrote on Jan 21st, 2009 at 4:22pm:
Would this be a valid starting/launching point?

Absolutely. As would just about anything else. The main thing is always to be pushing and challenging your understanding, and to be aware that your understanding is conditional on your past experience and limited by it, and thus constantly needs updating and adaptation.

Rad wrote on Jan 21st, 2009 at 12:59pm:
I don't want to learn (start with) bad habits.

Just start. If you are always pushing yourself, you won't stay still long enough to form too many!

And as for habits, there's a place for them. The familiar is what gives us confidence to take the next step into the unknown.

Analogy alert!

You don't scale a mountain without building yourself base camps; you won't reach the heights without leaving those base camps behind. That you intend to reach the top is more important than whether today you take the left fork or right fork (and if you have to double back, so be it; you'll make mistakes).
 
 
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 #12 - Jan 21st, 2009 at 11:50pm
 
Quote:
For some reason, I keep running over the ~4k post length limit....

sorry. i upped it to 6k.
 
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 #13 - Jan 22nd, 2009 at 2:42am
 
Nigel,

I wonder if you would be willing to share what you think of Ruby.  I learned some C and C++ several years ago and then didn't touch programing for a while.  About 3 years ago I began dabbling with Bash Shell, PHP, and Perl.  About 3 months ago it went from dabbling to honest studying, mostly focusing on Perl.  I choose Perl because I had some books laying around, some example code to work with, and some friends with experience to help me.  Perl was great for a few projects and sparked a renewed interest in programing, but I'm not having much fun with it on a current project (web application.)  It's not that it has been difficult to do what I want to do, it has just been incredibly tedious.  It seems to me that HTML was never meant to be a programing language (and its name seems to suggest that as well) and Perl wasn't really intended to produce HTML (even though it's been used for that for some time now.)

Even though I'm not very far into my study of perl, I'm tempted to jump into some other languages.  There is a PyGTK application I'd like to hack on, so I've considered Python.  I'd also love to learn Java so I can write applications for my Android phone.  

A college suggested Ruby for my web application.  Ruby fans claim that it is the best of everything - the best of SmallTalk, LISP, Perl, etc.  It looks like it would make developing web applications fast and less tedious (especially using the Rails framework.)  

Do you think Ruby is a good blend of other languages?  Would it really teach me as much about coding as they claim?  Or is it just part of the programing fashion you've mentioned a few times?

Do you think jumping to other languages (and gaining breath of understanding) is healthy before I have a good depth of knowledge of one language, or would it be better to hunker through more advanced Perl stuff before I change playgrounds?  

The challenge of programing is what I enjoy.  The tedium is what has always kept me away from it...
 
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 #14 - Jan 24th, 2009 at 4:35pm
 
I'm also interested in your thoughts on Ruby/Rails, since I feel drawn in that direction since it's web-oriented, and ever since I read (from a link you dropped) that it was akin to a "$10K dollar mountain bike..."  Smiley

I watched the first lecture on SICP here:

http://www.archive.org/details/mit_ocw_sicp

which got me pretty juiced. Especially when he said things like, "Unlike regular engineering, which deals with real things/mechanics, the only constraints we face in Programming are the limitations of the mind." (I got *real* juiced when I heard that.)

.. and also (in building larger programs), "There's not much difference between what I can build and what I can imagine." .. so that CS is like a form of abstract engineering.

Then read about problems here:

http://en.wikipedia.org/wiki/Structure_and_Interpretation_of_Computer_Programs

.. which landed me here:

http://www.htdp.org/

http://www.htdp.org/2003-09-26/Book/

via this 14-page PDF, which critiques SICP:

http://www.cs.brown.edu/~sk/Publications/Papers/Published/fffk-htdp-vs-sicp-jour...

Have you heard of HtDP? Your thoughts?

They use Scheme, which is a varient of LISP, I believe.

They also gravitate toward Java to teach OOP.

http://www.teach-scheme.org/

http://www.teach-scheme.org/Overview/

Regarding SICP, I also like that they present a general framework for thinking about languages:

1. What are the primitive elements?
2. What are the means of combination?
3. What are the means of abstraction? (to make complex things seem primitive .. to supress details .. to build bigger systems)
 
WWW  
IP Logged
 
Pages: 1 2 3 ... 5
Send Topic Print