Nathan Wailes - Blog - GitHub - LinkedIn - Patreon - Reddit - Stack Overflow - Twitter - YouTube
Advice from people I know
Quote:
Nathan:
hey I'm thinking about attending DevBootcamp(.com) as a way of getting an entry-level programming job and to work from my laptop ASAP but I'm nervous that 1) learning web design may be so different from other kinds of programming that it may not be worth the time investment, and 2) that I may not be able to get a job working from my laptop for some time (one guy I spoke to who won Facebook's national hackathon said that I'd need to work at least 2-3 years in an office before they'd let me telecommute, and even then people come in twice a week for meetings).
Also, do you think it's worth memorizing common cubes, squares, primes, and multiplication up to 20? (eg 13x18) What about learning fast math tricks (eg the book Secrets of Mental Math)? I've got a goal I'm half-committed to of getting a perfect score on the SAT and GMAT as a way of motivating me to keep going onto even higher math, and I've read online from people who did well on those tests that it's worth the little time it takes to memorize it.
Tom:
1) This is typically not true anymore. Many websites go with a MVC (model view controller) paradigm, designed to store data, display that data, and interact with that data. A simple example is a LAMP stack (Linux Apache MySQL php), wherein you use php to generate your pages and interact with a MySQL backed database. php is a little dirtier than other languages, but it still operates on similar principles. I learned it in a day or two. More robust sites use java instead of php, and that's definitely something respected as a programming language.
2) That might be true.
Again I wouldn't recommend memorizing any math. It's just not a productive use of time. That should come naturally with enough exposure. I would recommend finding a book on linear algebra and learning that though. (MIT has two linear algebra courses -- one is more concrete (Strang) and one uses Artin's Algebra)
In fact, why not look at some of MIT's OpenCourseWare sites, like this for linear algebra:http://ocw.mit.edu/courses/mathematics/ ... /index.htm .Â
Honestly I think linear algebra is the most accessible college-level math topic, even moreso than calculus. It should really be taught *before* calculus, since calculus uses some of the ideas of linalg, and so in practice they end up poorly-developed. I'm teaching multivariable calculus this term, and I wish my students knew some linalg -- it would save a lot of hand-waving. (And I try not to handwave, so it just means that my lectures are even more pressed for time).
I think OCW is a pretty good resource, and they have all the problem sets for a term as well as lecture notes and video lectures. In fact, you might be part of the target audience for these things.
Nathan:
Thanks a lot for the advice; I've been using Khan Academy for a while to brush up on my math, so I think I'll watch his videos on Linear Algebra and then try the OCW stuff (I've known about OCW for a few years but always found the learning curve a little steep for the courses I checked out).
I honestly think Anki will help a lot with math and CS, just to get the syntax stuff beaten into my head. I understand what you're saying about how that stuff will get in there anyway if I spend time on projects, but the problem I have is that I'll get bogged down in problem after problem while working on a project, and it'll be so frustrating that I'll give up for a few MONTHS. For example, I still haven't made much progress on the USACO puzzles since I last sent you and Chris Uga an email about it over the summer, and the reason isn't that the CONCEPTS of the puzzles are hard, but that figuring out how to translate my Python solutions into C++ for the website's grader is usually an extremely slow and painful process, so I end up dreading the thought of working on them.
Another problem I have is that I'll read a book and find a bunch of the info really interesting and useful, but I'll end up forgetting it. For example I was reading Prata's "C++ Primer Plus" over the summer and found it really interesting and useful, but I could tell I wasn't going to remember most of it. I think using Anki to rehearse stuff I've read/learned will help me cement it in my mind.
Tom:
Something you said above is really important: "Another problem I have is that I'll read a book and find a bunch of the info really interesting and useful, but I'll end up forgetting it. "
As a graduate student for math, I have to read and learn a *lot* of abstract math, from a lot of books. And the problem you mention -- forgetting things after reading them -- is a huge issue. And for a while I tried re-reading constantly and rote memorizing the parts that I needed.
I found three things happened that were undesirable: 1) The amount of material you have to do this with gets excessively large without having some mental framework under which a majority of the results are trivial; 2) You forget everything soon after you stop your memorization routine (take a week off and you're screwed); 3) While I knew the statements of the results, I did not know how to apply them.
What I've been doing now that's been more successful is to treat mathematical reading as an active process. Fight back against the book. Theorems might be structured like: if P and Q then R. Well, why is P necessary? Provide a counterexample to the theorem when P is false. Similarly for Q. Then give a good reason why P,Q give you R. Now you probably won't forget the theorem ever.
Unfortunately books will almost never go into this level of depth. A good lecturer will do so in class, but you almost never see that, either. So, it's up to you to do it for yourself. If you really want to be a strong self-learner, in my opinion there's not really any other option that will get you what you want.
Likewise if you are, say, learning dijkstra's algorithm and are implementing it from scratch in C++, you're likely to screw it up a few times before you get it to work. This will teach you all the subtleties of why it works by making you invent good debugging technique and watching the state of the algorithm as it goes. This is super valuable and builds the foundation for genuine skill.
Lastly, I just think that trying to memorize things leaves you with an academic equivalent ofhttp://en.wikipedia.org/wiki/Technical_debt , where you now are adding more and more tasks to your day just to pay for what you've learned already. Ideally you want the *opposite* to happen -- over time you should be freeing up more and more of your day to think about or do more challenging things, rather than maintaining what you know already. It's much less stressful .
That said, keep me posted on how you're doing, and fundamentally whatever works best for you works best for you. Best of luck!
Nathan:
Thanks a lot for letting me know about your experience. I definitely noticed that I improved on the LSAT very quickly by using the strategy you talk about here (picking everything apart and seeing how it works). But I also have good memories of using flashcards on the LSAT and in Chinese to remind myself what my weaknesses were. I'm going to think more about this.
Nathan:
I'm going to try to give you a monthly update as a way of motivating myself; there probably won't be much for you to say about it, so don't worry about responding.
I spent the past month and a half doing a few different things:
- I was doing a lot of the exercises on KhanAcademy; it tracks how many you've completed and gives you points for doing them, and I've found that pretty motivating (surprisingly).
- I watched about 1/3 of Sal's videos on Linear Algebra, and the first 2-3 videos of the MIT course. I stopped, though, after I watched a video by Sal where I started to get lost (because I was only half-paying-attention), and I never got myself to go back and watch the video again.
- I've been using Anki to study spanish, german, chinese, processing (a programming language built on java), and miscellaneous facts I've learned from the math videos I watch. I've been keeping what you said in mind while I did this and have been noticing those things you talked about (technical debt, needing a mental framework, forgetting things quickly, knowing a particular fact but not how to apply it). I still think Anki has been helpful, but I think I need to experiment with it more to see how to use it as effectively as possible.
- I've read Hartl's Ruby on Rails Tutorial book and visited different coding bootcamps in San Francisco
- I've been working on a chess program I'm making in processing. I want to use chess as a way of experimenting with the visualization of information in a way that allows humans to make smarter decisions.
- I've been reading what you wrote multiple times to try to figure out how to apply it to my situation.
My goal for the next month is:
- I have 3-4 Python solutions to USACO puzzles that I haven't been able to motivate myself to translate into C++. I want to translate them so I can move onto the next batch of USACO puzzles.
- I want to watch at least another 1/3 of Sal's lin alg videos, and I want to get through at least 10 of the MIT lectures on lin alg.
- I want to implement proper chess moves into the chess program, so that pieces move according to the rules and can capture each other.
- I want to make Anki flashcards for SAT advice I have in this book I bought a while ago.
- I want to make Anki flashcards for this speed-math book I bought.
Tom:
Cool. For an MIT course we had to implement a chess program, along with an AI that would play the game (by alternate sets of rules as well). It can get really tough. If you're implementing the game rules though, a neat next step would be to implement some sort of AI for the computer to use. A good starting point is alpha-beta pruning:http://en.wikipedia.org/wiki/Alpha%E2%80%93beta_pruning.
I assume the linear algebra material you've been looking at focuses more on matrices, and less on the more abstract viewpoints? (I actually usually find the matrix approach more confusing, but it's good for being concrete.)
Nathan:
Thanks for the tip; I hadn't heard of Alpha-beta pruning before. Sal's videos are basically him proving things from the ground up, which is helpful, but I'm still struggling with the typical "what motivated these ideas?" problem. I feel like I'm being led around blindfolded. I love the math books that describe the history behind stuff, because everything makes more sense when I know exactly why mathematicians needed to know how to do XYZ. I think it's a lot like reading someone else's programming code and wondering why they did it the way they did.
Also, I forgot to mention this, but I had a bit of an "Aha!" moment recently: I was trying to make a function that would make a chessboard square's color glow from its normal color to a glow color and back every x seconds, but couldn't figure out how to translate the input (the fraction representing the current position in the period of the glowing, from 0 to 1) into the necessary output (a fraction that would start at 0, gradually go up to 1 in the middle of the period, and then gradually back down to 0 at the end of the period). It was holding up progress for like a month or two, but a few days ago I was lying in bed and just started mentally playing with the image of the graph that the input would make, and asking myself, "What transformations would I need to apply to transform this into the output?" And so I had the idea to multiply the input by 2 in the first half of the period so that the line would be up at 1 by the middle instead of only at 1/2 (I was visualizing the picture changing while I thought to myself), and then I realized I would need to cut the input line in half, multiply it by -1, and subtract to get the second half to look like what I wanted it to look like (a downward sloping line). I can't remember solving a problem that way before, so I was pretty excited about it. I think the KhanAcademy exercises have been a huge help with my ability/willingness to visualize these things.
Tom:
I've always viewed linear algebra as the natural extension of coordinate geometry -- linear equations are lines and planes and so solving these things is the same thing as finding intersections. Matrix transformations are the same things as dilations/rotations/etc -- very natural things to want to do to geometric objects. A lot of the computational (let's solve these systems, rather than draw pictures) approaches don't start off with this motivation (it does, after all, take time), but I think intuition benefits from it.
Fundamentally you're still doing the same computations at the end of the day, but it's nice to know where things are coming from. Most importantly, I've always liked to think about it as "what am I allowed to forget?" Remembering a couple of important things (and understanding them well!) gives you a solid core of understanding. I think people often "remember" things by deducing them quickly rather than memorization. (Basically some sort of contextual memory -- e.g. not being able to write down your password, but you can type it just fine).
What transformation you did is a triangle wave http://en.wikipedia.org/wiki/Triangle_wave. See that a sine wave would have worked too -- you might want to experiment and see which looks best for you . But that's a very strong observation you made -- and reinventing things from scratch is a great way to learn.
By the way, a lot of mathematics turns out to have this structure:
1) What objects am I studying? (Say, vector spaces)
2) What are structure-preserving transformations between these objects? (Say, Linear transformations or matrices)
3) What other properties are preserved (in any way) by these transformations? (Say, dimension, linear independence, lots of things)
Quote:AoPS (mostly quotes from Richard Rusczyk)
I've gone through pages 5 and 6. I stopped on page 4 (I'm working my way backwards):
http://www.artofproblemsolving.com/Foru ... &start=120
NoYoo-hooForMe worked with RR at DE Shaw:
His profile:Â http://www.artofproblemsolving.com/Foru ... le&u=16466
Where he says he worked with RR:Â http://www.artofproblemsolving.com/Foru ... 38&t=47853
While it's not expected that you'll make a million dollars in year 5, neither is it impossible. If you're not making at least middle six-digits by year 6-8 as a quant in a hedge fund, then something has gone very wrong for you.Â
(My experience may somewhat skew these remarks - I happened to have a very quick rise because I got lucky in the group I landed in when I arrived at Shaw. That said, nearly everyone I know who has been involved in trading for 7-10 years is very, very wealthy. FWIW, I was only there for 4 years.)
[...]
In general, I'd say that if you can get a position at a good trading firm right out of undergraduate, in the long run you'll be way ahead of where you would be if you waited until you had a PhD. [this is exactly what Wes said: it's an apprenticeship industry, so an MBA isn't as useful as many people believe it to be]
Source:Â http://www.artofproblemsolving.com/Foru ... 38&t=83897
Hedge funds seem to go more for the folks with pure science degrees. That said, they aim more at the people with applied knowledge (e.g. physics) than at the pure math people.Â
Whatever route you go, learn how to program.
Source:Â http://www.artofproblemsolving.com/Foru ... 38&t=84593
I worked a fair amount at Shaw, but I work way more now on AoPS. I would say the average work week at places like Shaw or Jane Street is closer to 55 hours, maybe lower (unless things have changed dramatically).
Source:Â http://www.artofproblemsolving.com/Foru ... 38&t=90486
Question: Can you please give me some examples of what kind of fields I will be able to work in financial industry if I am not hired as a quant?
Answer: The largest is consulting. Others include government work (NASA, NSA, etc., all hire lots of quants), startups of various kinds (particularly if you know how to program), or starting your own company. Many biotech companies now require serious modeling as well, though that may require more education. Speaking of education, academia is also an option.
[...]
Rrolack: I work as a hedge fund quant in NYC, and despite the fact that I love my job, I am a bit frustrated by the lack of quant jobs outside the New York area. They say NYC is the capital of the United States for finance jobs in general. This holds even more true for quant jobs, IMO.
Source:Â http://www.artofproblemsolving.com/Foru ... 38&t=85185
I'm on record as noting that the group I worked with at Shaw was more impressive than the groups I went to MOP with. [wow]
[...]
In evaluating quants, they'll want to see experience coding to apply mathematics to problems. As for the area of math, that's of somewhat secondary importance. A candidate with a purely theoretical background and no experience with applications or computers is unlikely to get hired (and such a candidate is also unlikely to be happy at Shaw - if pure theoretical research is the only thing you love, then you'll be happier elsewhere. In trading, you have to get your hands dirty and wander into some grey areas/guesswork).
http://www.artofproblemsolving.com/Foru ... 0&start=20
If you are aiming at being a quant, learn how to program and get some mathematical modeling (applied math) experience, too. That is probably more important than economics.
http://www.artofproblemsolving.com/Foru ... 0&start=40
RR: The environment is very competitive/cooperative, since you both want to stand out among your peers, but you also do better when they do better. It is competitive, but often much more of 'our firm' against 'everyone else' instead of you against the person sitting next to you. If you're in the latter situation, find somewhere else to work. It's not as cutthroat as pre-meds in undergraduate school tend to be, for example.
Yoohoo:My belief is that a lot depends on how you approach the quant role--to be honest, I think Richard may have been smarter in how he approached it than I was. You need to take the approach that being a quant is something that you are going to do during a certain phase of your life to attain a certain level of financial security. You need to set the goal that it is something that you are doing to make a substantial amount of money within a relatively short amount of time--and, although it involves risk, it is probably less risky than other paths (like a tech startup) that technically oriented people could follow to achieve financial security.
Yoohoo cont'd: It is important to, early on in any quant job, get a sense as to how they approach their mathematics. You aren't (in my experience) going to find complete mathematical rigor in any quant job. Within any quant group, there are certain things that seem to be accepted more or less on faith--and they vary from one group to another. It is key, early on, to get a sense as to what the group simply accepts on faith. Within that basic structure, they then apply rigorous mathematical techniques to maximize their profits. If you use your mathematical ability to maximize their success within their basic structure, you will be successful. If you try to use your mathematical aptitude to challenge their basic assumptions--even in cases where those basic assumptions might not be 100 percent true all the time--you will be less successful.
http://www.artofproblemsolving.com/Foru ... 38&t=47853
A friend of mine working as a quant:
Quote:Me:
How is it working at a hedge fund? Do you spend all day messing with math programs or is it mostly straightforward administrative work? Any books you recommend to learn more about that stuff (esp. serious math or programming or investment books)?
My friend:Â [emphasis added]
It's not bad actually. It's basically a programming job involving coding up and maintaining the following:
- Model implementation.
- Trading infrastructure.
- Backtesting/reporting tools.
- Data processing tools.
If you're into this sort of thing, I recommend getting good at quant-oriented programming -- I had no finance experience and I picked all such relevant knowledge on the job, so you just need to know how to program math-related stuff -- there's no need to read investment books. Best way to do that is
- Pick up some languages you're likely to use on the job. C++/Java/Python should be enough. There are plenty of free online tutorials. You can also go to your local library or buy books with good reviews on Amazon.
- Do exercises on USACO or Project Euler, which are basically a collection of fun algorithm problems. It's the same sort of stuff you'd do in a quant developer job, so the problems are very relevant.
I prefer working in a hedge fund over a tech company like Google because:
- There's a lot more discipline and focus -- your work has direct financial impact on the firm, whereas at Google people often work on lots of cutesy stuff that has no direct impact on revenue, which is not my sort of thing.
- I work roughly the same hours but make 2x as much money. I have a rather simple lifestyle, but it's nice to know that I don't have to worry as much if I need to incur large expenses one day (buying a house, paying medical bills, etc).
Me:
Wow, thanks for the in-depth response! I'm going to keep making my way through the programming books and start solving those puzzles; the USACO / Project Euler sites are exactly what I was hoping you could point me to.
I have one more question for you: What are your future plans? Would you describe yourself as being driven to get rich, or does chasing money not really interest you? For example, would you ever consider starting your own hedge fund?
Him:
I actually don't have any lofty career ambitions -- I follow a pretty simple life philosophy, which is to live a simple lifestyle and aim for a salary that allows you to comfortably pay the bills. Studies have shown that after a certain point, more money brings very little extra happiness, so I don't see the point of chasing money. Or perhaps all this is really just a subconscious excuse to be lazy/complacentÂ
I'm an avid chess geek, so outside of work I devote a lot of time to studying/playing the game. It's a damn cheap hobby (in fact back in HS I made a small profit doing well at some local tournaments) but it brings me much more joy than any amount of eating fancy food or riding fancy cars or living in a gigantic home ever would. Living large isn't for me.
me:Â do you know of any forums where people talk about finance and stocks etc.?
i read in that vanity fair article that that's partly how michael burry got started
My friend:Â yea wilmott is pretty popular i think
me:Â and i found forums very helpful w/ the LSAT
thanks
My friend:Â for its for quant finance
me:Â nice
My friend:Â *but its
me:Â i want to get good at all that stuff
My friend:Â yea go for it. nowadays there are so many resources available online for everything.. the potential is limitless for learning new stuff
me:Â exactly, it's boiled down to the question, "how much of your life are you willing to trade to acquire these skills?"
My friend:Â yep
from your perspective, how easy would it be for someone with a harvard MBA to get a job with a hedge fund?
i saw that sal khan had a harvard MBA but also CS degrees from MIT
My friend:Â there are lots of MBAs at hedge funds
but they're mostly in business development
me:Â what's my best route in?
My friend:Â they dont do research
me:Â CS?
My friend:Â depends on what particular role you want
if you want to do a technical role, then an MBA is more lor less useless
you're better off with a masters and/or phd
me:Â right
everything i'm reading is telling me a degree won't get me where i want to go, but it's hard to resist
or at least, a degree isn't sufficient
My friend:Â right, it definitely helps but it's not enough. in the end what really matters is whether you ace the interview
me:Â i'm trying to start my own website to post my thoughts
My friend: for my role, for example, i cant count how many times we turned down MIT CS grads
me:Â i think self-promotion is really underrated by people
wow
why?
they weren't personable enough?
My friend:Â because they sucked in the interview
me:Â but what does that mean
no knowledge of finance?
not quick on their feet?
My friend:Â they just didnt do well with our technical questions
well i mean
me:Â so no real-world experience?
My friend: well some of them do have it. its just that the bar is high so you need to not just have a degree and experience but you need to be able to do well on hard technical questions
me:Â what could they have done differently in their self-education to do better?
My friend:Â they can do various things to prep. stuff i mentinoned to you like doing USACO-type problems certainly helps
we also look at people's coding style, and some people are just clueless. there are various books on coding style
me:Â you mean they have sloppy code?
My friend:Â i dont really know any good ones off the top of my head... i just learned by experience at google during code reviews
yeah
me:Â hmm i'm going to go look for some books about that
i noticed the code for the little script i wrote for my job is really sloppy, so that's something i need to get better at
My friend:Â yea, though make sure you really know what you want to do. finance is such a huge field. quant programming is just one of many options
me:Â right
atm i think i'm more interested in the idea of value investing
what michael burry and buffett do
My friend:Â ok
yeah you dont sound like a programmer to me
me:Â well i'd like to have some familiarity with it
so i can tell when it could be helpful
My friend:Â yea ic
me:Â idk, i'm just dipping my toes in the water now
My friend: my very general advice, one that is oft repeated by many others, is to go for a job that you enjoy. don't do things for the sake of the result, but make sure you enjoy the process as well
me:Â yeah i've been thikning about that
my plan at the moment is to make a youtube / website where i talk about my opinions of things
My friend:Â i've seen and heard of many people who are miserable because they do things purely for a sense of achievement or wealth. and its hard to excel at something youre not happy at doing
me:Â yeah
My friend:Â like, i make just a decent wage as a programmer, but by and large im happy because i love coding
me:Â you said you're making double what you made at google; how is that just decent?
My friend:Â lol true, i guess my standards have changed since moving into the hedge fund world
me:Â LOL
My friend:Â i did make slightly over $200k last year
me:Â GOD DAMN
i'm talking to john ahn right now
and i told him i thought you were making over $150k
that's insane
My friend:Â yea it was $210k to be exact
me:Â agh i'm so jealous
My friend:Â not sure how things will turn out this year as we've been getting hit by the marketsÂ
me:Â i work like 60 hours a week to get to around a $60k a year level
My friend:Â dude you can def make way more than me... im just a programmer. theres no limit in finance
me:Â this is an extremely motivating discussion for me
lol
My friend:Â good luck man, i have to go to a mtg now
me:Â thanks a lot for msging me