Open Side Menu Go to the Top

09-07-2012 , 09:33 AM
Shoe, I'm not sure I entirely agree - but that wasn't my point. I just mean for a developer knowing how to use git seems like a necessary skill. I don't think its reasonable to say:

"If I'm using Mercurial, I have to learn how to use Git just to update plugins for one out of many tools I use?"

Edit: It just goes towards my point that candybar is arguing some very specific scenario that he's defined. I'm not sure I care what is the best software development environment for a developer that starts with no skills, doesn't want to configure his environment in any way, and frequently needs to share computers with other developers.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **
$25m Guaranteed WPM on CoinPoker
Join the action now
Daily Rewards • Splash Pots • CoinRaces
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **
09-07-2012 , 10:45 AM
Quote:
Originally Posted by daveT
candybar. That was an excellent post. I have nothing to add to it.
Thanks Dave!

Any plans on learning any of those functional languages I mentioned? Coming from Clojure/Scheme/Lisp-Land, I would presume OCaml is probably the most straightforward, though Haskell probably offers the maximum learning opportunity. Scala is beginning to become the most useful out of those, but it's least useful from a learning perspective.

If you're learning Haskell, you may find the following tutorial quite helpful:

http://en.wikibooks.org/wiki/Write_Y...me_in_48_Hours
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 10:45 AM
I don't use git. I've never wanted to use git. So I've never learned it.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 11:46 AM
davet,
You're talking about these lectures right?

http://ocw.mit.edu/courses/electrica...ideo-lectures/
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 11:47 AM
I don't use Git either. I experimented with it for a while and then decided that SVN was much simpler for small teams. I still plan to get comfortable with Git though simply because it has become so popular for open source projects.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 12:09 PM
You sad sad people.

Edit: But I'm jealous of you. You still have the day in your life when you'll realize how ****ing awesome it is.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 12:12 PM
Quote:
Originally Posted by jjshabado
You sad sad people.

Edit: But I'm jealous of you. You still have the day in your life when you'll realize how ****ing awesome it is.
I loved Arch. I love Bazaar. I have no reason to switch.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 12:13 PM
Quote:
Originally Posted by StumpyJoe
I don't use Git either. I experimented with it for a while and then decided that SVN was much simpler for small teams. I still plan to get comfortable with Git though simply because it has become so popular for open source projects.
Stumpy, an apt name in so many ways......
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 12:18 PM
Quote:
Originally Posted by Neil S
I loved Arch. I love Bazaar. I have no reason to switch.
Fair enough. I guess I was talking more about the jump from cvs/svn to git (or similar).

That being said I'm sure figuring out how to use git to do basic/standard stuff would take you all of a couple of seconds.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 01:42 PM
Quote:
Originally Posted by candybar
Thanks Dave!

Any plans on learning any of those functional languages I mentioned? Coming from Clojure/Scheme/Lisp-Land, I would presume OCaml is probably the most straightforward, though Haskell probably offers the maximum learning opportunity. Scala is beginning to become the most useful out of those, but it's least useful from a learning perspective.

If you're learning Haskell, you may find the following tutorial quite helpful:

http://en.wikibooks.org/wiki/Write_Y...me_in_48_Hours
That book looks awesome, but I can't do it because I'm highly susceptible to distractions and treating life like a candy store.

At this moment, I am on Chapter 4.x of SICP, which begins with the metacircular evaluator, ie. writing a Scheme interpreter in Scheme. The section I am reading now is a fascinating discussion of logic programming, and creating a query language in Scheme. Just awesome stuff for me, especially since most of the programming I do is data-based and interacts with PostgreSQL. I didn't know that Prolog was created to represent and understand logic programming. I know, plainly obvious from the name, right?

The next section deals with creating and using a register machine, yes, using lisp pointers, which I am looking forward to. In my opinion, the next logical step is to read K&R Programming in C. It's sort of reverse: to learn functional programming before imperative, but that's the way the path went.

After this, it will be a choice between learning assembly or working through Introduction to Algorithms. Perhaps a combination of both.

I fear that if I went into Haskell or other directions, I'll end up chasing my own tail and thwarting my learning curve, so its better to stick with my current plan until there is some highly convincing reason not to. I did a lot of reflection over what I did right and wrong over the past year, and I believe that the best way (for me) is to take a more academic path focusing on mastering the foundations, notwithstanding my current web project.

It's hard as hell to self-learn. Distractions are all over the place.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 01:43 PM
Quote:
Originally Posted by Shoe Lace
davet,
You're talking about these lectures right?

http://ocw.mit.edu/courses/electrica...ideo-lectures/
Yes. Those. I'm loving them.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 01:45 PM
Quote:
Originally Posted by jjshabado
By the way - I don't see how learning to use git is really a prerequisite. It's like saying I have to learn how to install a program in Windows or use a mouse. You should probably already know (or be happy to finally learn).

Just curious - of the developers here, who doesn't know Git?

Not a developer, but I did do my first upload about 2 weeks ago. Kind of intimidating, but rather painless.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 01:48 PM
The teacher is really good. I just finished the first video and I'm extremely impressed. I was also clueless about lisp prior to watching. It's surprising how easy it is to pickup so far.

I guess back then it had to be because it was mostly being explained on a chalk board. I like how in about 2 minutes he explained anonymous functions and functions returning functions in such a clear way.

Most people would spend like 2 months and read 10 articles before they understand those concepts in JS but this guy explained both really well in about a minute each.

His hair is also awesome. It's like someone shaved it in the worst possible way and he doesn't care at all.

It's almost insane to think how big of a difference a good teacher makes. I can already tell once I finish the lectures/books it will be life changing. It will probably affect tasks outside of programming too.

Last edited by Shoe Lace; 09-07-2012 at 01:54 PM.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 02:07 PM
Quote:
Originally Posted by daveT
That book looks awesome, but I can't do it because I'm highly susceptible to distractions and treating life like a candy store.

At this moment, I am on Chapter 4.x of SICP, which begins with the metacircular evaluator, ie. writing a Scheme interpreter in Scheme. The section I am reading now is a fascinating discussion of logic programming, and creating a query language in Scheme.
Oh I see, definitely go through that stuff furst. Once you're done with the metacircular evaluator, you've pretty much gotten the point of the book. Not that it would hurt to go further into the book.


Quote:
In my opinion, the next logical step is to read K&R Programming in C. It's sort of reverse: to learn functional programming before imperative, but that's the way the path went.

After this, it will be a choice between learning assembly or working through Introduction to Algorithms. Perhaps a combination of both.
I'd do Introduction to Algorithms (CLRS right?) along side C, and implement those algorithms in C. Because the book strongly assume imperative style of programming, it's easier follow the author's intent in C than in Clojure or Scheme. For assembly, make sure to learn it in the context of computer architecture.


Quote:
I fear that if I went into Haskell or other directions, I'll end up chasing my own tail and thwarting my learning curve, so its better to stick with my current plan until there is some highly convincing reason not to. I did a lot of reflection over what I did right and wrong over the past year, and I believe that the best way (for me) is to take a more academic path focusing on mastering the foundations, notwithstanding my current web project.
This makes sense. Yeah, it's probably better to do Haskell stuff after you're done with all the stuff above. Maybe sprinkle in Compilers or Operating Systems or even Computability theory. In fact Haskell, OCaml/F#, Scala, etc make a lot more sense when you study compilers.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 02:12 PM
Quote:
Originally Posted by Shoe Lace

His hair is also awesome. It's like someone shaved it in the worst possible way and he doesn't care at all.
I could go on and on about this. These guys are legit nerd cool in a way that no longer exists. Not the modern bull**** hipster buddy holly glasses i play in a band on the weekends nerd cool, but real nerd cool. As in, these guys were huge ****ing nerds. And it is so cool.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 02:15 PM
candybar,

what's your background?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 02:29 PM
Quote:
Originally Posted by candybar
Oh I see, definitely go through that stuff furst. Once you're done with the metacircular evaluator, you've pretty much gotten the point of the book. Not that it would hurt to go further into the book.
Yeah, I can understand your point. The book is exhausting on one hand, but there hasn't been a single chapter that I've read that hasn't been eye-opening and utterly mind-blowing. If I reach the boring chapter, I'll quit reading it.


Quote:
I'd do Introduction to Algorithms (CLRS right?) along side C, and implement those algorithms in C. Because the book strongly assume imperative style of programming, it's easier follow the author's intent in C than in Clojure or Scheme. For assembly, make sure to learn it in the context of computer architecture.
Yes. I'm sorry. I meant I wanted to do C first then the Corman book, though I most certainly can do them together.


Quote:
This makes sense. Yeah, it's probably better to do Haskell stuff after you're done with all the stuff above. Maybe sprinkle in Compilers or Operating Systems or even Computability theory. In fact Haskell, OCaml/F#, Scala, etc make a lot more sense when you study compilers.
I'm also working through a book called "Mathematics for Computer Scientists," which I suppose is Computability Theory? This is all proofs and stuff like that. I won't lie to you and say my proofs can pass peer reviewed rigor, but this stuff is most certainly helpful. There's a few items in the book I want to try to program and see how it works out.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 02:30 PM
Quote:
Originally Posted by gaming_mouse
candybar,

what's your background?
hey,

I was a CS major, have been professionally developing software for about 9 years though some of those years overlapped with finance work, long story, started programming about 17 years ago with QBasic by trial & error and online (in the sense of software-delivered, i had no net access) documentation.

what do you want to know in particular?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 02:30 PM
Quote:
Originally Posted by gaming_mouse
I could go on and on about this. These guys are legit nerd cool in a way that no longer exists. Not the modern bull**** hipster buddy holly glasses i play in a band on the weekends nerd cool, but real nerd cool. As in, these guys were huge ****ing nerds. And it is so cool.
Sometimes, I can't help smiling. Did you see the metacircular evaluation video? I laughed like hell at it.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 02:38 PM
Quote:
Originally Posted by daveT
I'm also working through a book called "Mathematics for Computer Scientists," which I suppose is Computability Theory? This is all proofs and stuff like that. I won't lie to you and say my proofs can pass peer reviewed rigor, but this stuff is most certainly helpful. There's a few items in the book I want to try to program and see how it works out.
Is it this one?

http://www.cs.princeton.edu/courses/...433/mathcs.pdf

This is good and necessary - you want to finish this before you get to CLRS - but not quite what I had in mind.

Computability is more like the mathematics behind regular expressions, context free grammars, finite/push-down automata, turing machines, then if you have the time, unrestricted grammar, lambda calculus, recursive functions, etc, which are all equivalent to turing machines. Then halting problem, rice's theorem, fixed point theorem, etc.

It's not as important as the other stuff for software developers, but it's a good thing to understand, if you want to become an uber-developer. Doesn't make sense to do this before Algorithms however.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 02:53 PM
Quote:
Originally Posted by candybar
Is it this one?

http://www.cs.princeton.edu/courses/...433/mathcs.pdf

This is good and necessary - you want to finish this before you get to CLRS - but not quite what I had in mind.

Computability is more like the mathematics behind regular expressions, context free grammars, finite/push-down automata, turing machines, then if you have the time, unrestricted grammar, lambda calculus, recursive functions, etc, which are all equivalent to turing machines. Then halting problem, rice's theorem, fixed point theorem, etc.

It's not as important as the other stuff for software developers, but it's a good thing to understand, if you want to become an uber-developer. Doesn't make sense to do this before Algorithms however.
Yes, that book. The Intro to Algorithms course calls for that book and SICP as prerequisites to the class, and either C or Java.

The rest of that stuff is things I'm aware of, but definitely too far-flung for right now. Well, I think I have an okay handle on recursion and lamdba calculus and a superficial understanding of fixed-points, but this is something I'm sure you'd be able to prove me wrong on with little effort.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 02:57 PM
Quote:
Originally Posted by daveT
Sometimes, I can't help smiling. Did you see the metacircular evaluation video? I laughed like hell at it.
I can't recall... I watched the videos a year or two ago I think, and I don't think I watched every single one.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 02:58 PM
Quote:
Originally Posted by candybar
hey,

I was a CS major, have been professionally developing software for about 9 years though some of those years overlapped with finance work, long story, started programming about 17 years ago with QBasic by trial & error and online (in the sense of software-delivered, i had no net access) documentation.

what do you want to know in particular?
that was it

you just seem very knowledgeable
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 03:04 PM
Quote:
Originally Posted by daveT
Yes, that book. The Intro to Algorithms course calls for that book and SICP as prerequisites to the class, and either C or Java.

The rest of that stuff is things I'm aware of, but definitely too far-flung for right now. Well, I think I have an okay handle on recursion and lamdba calculus and a superficial understanding of fixed-points, but this is something I'm sure you'd be able to prove me wrong on with little effort.
Cool. This stuff really depends on your math background. Recursive functions theory doesn't have that much to do with recursion in practice, it's more of a mathematical construct designed to prove stuff (http://en.wikipedia.org/wiki/%CE%9C-recursive_function). Theory and practice intersect in a funny way in programming, so I'm sure that you've been exposed to concepts and have no problem using them in practice without having the theory explained to you. If you're starting with SICP, you're on a very nice track, so keep it up!
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 03:05 PM
Quote:
Originally Posted by gaming_mouse
that was it

you just seem very knowledgeable
thank you!
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **
$25m Guaranteed WPM on CoinPoker
Join the action now
Daily Rewards • Splash Pots • CoinRaces
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **

      
m