Serving the Quantitative Finance Community

 
User avatar
Cuchulainn
Topic Author
Posts: 22926
Joined: July 16th, 2004, 7:38 am

In the old days we have "Compile, Link,Go", these days everything is just "Compile"

May 17th, 2012, 6:49 pm

Try to explain to someone under 32 years what the phases of a compiler are.What does "unresolved symbol" mean?Why do we not put a template.cpp file in a VS project?
Last edited by Cuchulainn on May 17th, 2012, 10:00 pm, edited 1 time in total.
 
User avatar
Polter
Posts: 1
Joined: April 29th, 2008, 4:55 pm

In the old days we have "Compile, Link,Go", these days everything is just "Compile"

May 17th, 2012, 10:14 pm

I don't know, e.g., CS:APP is a 2010 book, relatively decent intro, and reportedly has some reasonable adoption: http://csapp.cs.cmu.edu/public/adoption-map.htmlPerhaps throw a chapter 1 at that certain someone, see if it helps! ;-)Or, consider the 2011 edition of a classic by Patterson & Hennessy, Computer Organization and Design: The Hardware/Software Interface.I think the exposition in "Translating and Starting a Program" looks fine: http://books.google.com/books?id=3b63x- ... 139Perhaps you're trying to explain to someone who hasn't gone through the prerequisites?
Last edited by Polter on May 17th, 2012, 10:00 pm, edited 1 time in total.
 
User avatar
Hansi
Posts: 41
Joined: January 25th, 2010, 11:47 am

In the old days we have "Compile, Link,Go", these days everything is just "Compile"

May 18th, 2012, 11:12 am

Just tell them to go through this class? https://www.coursera.org/course/compilers
 
User avatar
dd3
Posts: 4
Joined: June 8th, 2010, 9:02 am

In the old days we have "Compile, Link,Go", these days everything is just "Compile"

May 18th, 2012, 2:03 pm

I hope this person doesn't do software development professionally?
 
User avatar
Cuchulainn
Topic Author
Posts: 22926
Joined: July 16th, 2004, 7:38 am

In the old days we have "Compile, Link,Go", these days everything is just "Compile"

May 18th, 2012, 2:12 pm

QuoteOriginally posted by: dd3I hope this person doesn't do software development professionally?It's a general pattern I am seeing, admittedly with novices (BSc, MSc level). On the other hand, they should know. Some possible reasons could be:1. not enough hands-on programminng done early enough at university.2. too many interpreted languages being taught (e.g. ...) which blur the compiler phases. Gives a false sense of one's real programming ability.3. Everyone should learn a bit of C imo (if only for the basics). C++ is not needed in the beginning.
Last edited by Cuchulainn on May 17th, 2012, 10:00 pm, edited 1 time in total.
 
User avatar
elio
Posts: 1
Joined: April 5th, 2006, 5:19 pm

In the old days we have "Compile, Link,Go", these days everything is just "Compile"

May 21st, 2012, 12:34 pm

Well, at least in my uni back in Russia they do it the way you like (i'm well below 32). When the first thing on the list is the assembly language, students will know a bit about these things.That said I'm very happy with Python. Though I use C++ via Boost.Python I would rather prefer not to if performance was not an issue.I think I spend more time on development than people around (academia, finance, so people use matlab all the time), but I really dislike Matlab and woudn't want to maintain any code written in it.I gradually started to love unit testing and test-driven development. I think it saves time in the end, though I'm not fully converted yet. Do they teach it at universities btw? I was quite ignorant about that stuff.P.S. Cuch, where should I apply if I'll be looking for a job?)
Last edited by elio on May 20th, 2012, 10:00 pm, edited 1 time in total.
 
User avatar
quantmeh
Posts: 0
Joined: April 6th, 2007, 1:39 pm

In the old days we have "Compile, Link,Go", these days everything is just "Compile"

May 21st, 2012, 3:21 pm

QuoteOriginally posted by: Cuchulainn1. not enough hands-on programminng done early enough at university.i don't think one can get that in class room time. you get that from actual work on actual projects. the uni is to give a fundamental education, algorithms, analysis etc.
 
User avatar
Traden4Alpha
Posts: 3300
Joined: September 20th, 2002, 8:30 pm

In the old days we have "Compile, Link,Go", these days everything is just "Compile"

May 21st, 2012, 6:59 pm

Doesn't this change reflect the growing use of OSes and high-level languages with lots of built-in functionality?Back the old days, a computer did almost nothing when first turned on. You couldn't even multiply two numbers without writing some code. That meant that creating/linking libraries of functions was a critical necessity. But these days, it's all just there, pre-built, auto-included, If anything, giving too much control of linking to the programmer would be more likely to break stuff when the code is run on another machine.That said, I entirely agree that anyone who wants to claim to be a CS grad or software engineer needs to understand how compilers work.
 
User avatar
quantmeh
Posts: 0
Joined: April 6th, 2007, 1:39 pm

In the old days we have "Compile, Link,Go", these days everything is just "Compile"

May 21st, 2012, 10:14 pm

QuoteOriginally posted by: Traden4Alphato understand how compilers work.they work quite fast these days
 
User avatar
Hansi
Posts: 41
Joined: January 25th, 2010, 11:47 am

In the old days we have "Compile, Link,Go", these days everything is just "Compile"

May 22nd, 2012, 7:35 am

QuoteOriginally posted by: Traden4AlphaThat said, I entirely agree that anyone who wants to claim to be a CS grad or software engineer needs to understand how compilers work.And if you need it for your job, you're most likely not a quant.
 
User avatar
Cuchulainn
Topic Author
Posts: 22926
Joined: July 16th, 2004, 7:38 am

In the old days we have "Compile, Link,Go", these days everything is just "Compile"

May 22nd, 2012, 7:44 am

QuoteOriginally posted by: HansiQuoteOriginally posted by: Traden4AlphaThat said, I entirely agree that anyone who wants to claim to be a CS grad or software engineer needs to understand how compilers work.And if you need it for your job, you're most likely not a quant.I don't agree. Quants need to optimise code, e.g. cache miss, if-else in loops, volatile, etc. especially in multi-threaded s/w.Who optimises a MC or FDM solver? The work cannot be broken into little compartments.The link by Polter showing the phases in the compilation process is essentially what I was referring to.
Last edited by Cuchulainn on May 21st, 2012, 10:00 pm, edited 1 time in total.
 
User avatar
Hansi
Posts: 41
Joined: January 25th, 2010, 11:47 am

In the old days we have "Compile, Link,Go", these days everything is just "Compile"

May 22nd, 2012, 7:56 am

QuoteOriginally posted by: CuchulainnI don't agree. Quants need to optimise code, e.g. cache miss, if-else in loops, volatile, etc. especially in multi-threaded s/w.Seems to me that most of the quants excluding pricing library guys do this based on experience and best practices learned from somewhere else rather than a deep understanding of compiler internals. Never had any experience to the day to dayt work of pricing library work so maybe they know their compiler like the back of their hand.
Last edited by Hansi on May 21st, 2012, 10:00 pm, edited 1 time in total.
 
User avatar
ashkar
Posts: 0
Joined: October 17th, 2011, 9:25 am

In the old days we have "Compile, Link,Go", these days everything is just "Compile"

May 22nd, 2012, 1:25 pm

Why the cut-off at 32?Most real quants dont know/dont care about all this stuff. If you're talking about quant-devs then fair enough. They should know.
 
User avatar
Cuchulainn
Topic Author
Posts: 22926
Joined: July 16th, 2004, 7:38 am

In the old days we have "Compile, Link,Go", these days everything is just "Compile"

May 22nd, 2012, 1:30 pm

QuoteOriginally posted by: ashkarWhy the cut-off at 32?Most real quants dont know/dont care about all this stuff. If you're talking about quant-devs then fair enough. They should know.Have to start somewhere.BTW what does a quant do? Pencil and paper?Any age > 47 means that they learned different from those <= 32, possibly more fundamental than today.
Last edited by Cuchulainn on May 21st, 2012, 10:00 pm, edited 1 time in total.
 
User avatar
ashkar
Posts: 0
Joined: October 17th, 2011, 9:25 am

In the old days we have "Compile, Link,Go", these days everything is just "Compile"

May 22nd, 2012, 2:03 pm

I have no qualms if you reduce it to some CI around 28 By real quant, I mean those who work primarily on analysis or and building new products/models. About half the quants in our asset class do dev work...nothing quantitative and they are the ones who focus more on CS and are very good at it.In my experience its hard to become very strong in all areas (CS, Maths, Finance) unless it comes with experience.