You're looking at Less Wrong's discussion board. This includes all posts, including those that haven't been promoted to the front page yet. For more information, see About Less Wrong.

iarwain1 comments on Open Thread, May 19 - 25, 2014 - Less Wrong Discussion

2 Post author: somnicule 19 May 2014 04:49AM

You are viewing a comment permalink. View the original post to see all comments and the full post content.

Comments (289)

You are viewing a single comment's thread. Show more comments above.

Comment author: iarwain1 21 May 2014 04:03:46PM 0 points [-]

Whatever fundamentals are necessary to understand the things that I'm likely to come across while programming (I'm hoping to go into data science, if that makes a difference). I don't know enough to know which particular fundamentals are needed for this, so I guess that's actually part of the question.

Comment author: Lumifer 21 May 2014 04:36:45PM 3 points [-]

Well, if you'll be going into data science, it's unlikely that you will care greatly about the particulars of the underlying hardware. This means the computer-science branch is more useful to you than the physical-execution one.

I am still not sure what kind of fundamentals do you want. The issue is that the lowest abstraction level is trivially simple: you have memory which can store and retrieve values (numbers, basically), and you have a processing unit which understands sequences of instructions about doing logical and mathematical operations on those values. That's it.

The interesting parts, and the ones from which understanding comes (IMHO) are somewhat higher in the abstraction hierarchy. They are often referred to as programming language paradigms.

The major paradigms are imperative (Fortran, C, Perl, etc.), functional (LISP), logical (Prolog), and object-oriented (Smalltalk, Ruby).

They are noticeably different in that writing non-trivial code in different paradigms requires you to... rearrange your mind in particular ways. The experience is often described as a *click*, an "oh, now it all makes sense" moment.

Comment author: iarwain1 21 May 2014 05:26:01PM 0 points [-]

I guess a good starting point might be: Where do I go to learn about each of the different paradigms? Again, I'd like to know the theory as well as the practice.

Comment author: Lumifer 21 May 2014 05:31:39PM 3 points [-]

Google is your friend. You can start e.g. here or here.