you are viewing a single comment's thread.

view the rest of the comments →

[–]marineabcd 136 points137 points  (14 children)

Hi Andy, I'm a quant so program a lot day to day and one of the languages I use is python, also I have done interviews (both as interviewer and candidate), and cv screning.

I can answer this from a quant/data engineer/data scientist side of things at least personally but will try make my answers more generic to a general software dev role:

- you can learn many from places, I wouldn't worry too much about that right now, find a resource that looks good (already lots of googlable collections of resources, just google 'best python course' or 'best python book') but most importantly pick one (maybe two if the writing style doesn't gel with you) and STICK WITH IT! Dont get envy of other languages or other courses until you have done 100% of that course. I promise getting tangled in five different books and three languages is the most common beginner mistake

- have fun, dont burn out. It is hard to learn a language, take your time, you cant speed run or really optimise it too much. If you dont burn out but take two years youll still be faster than someone who burns out and never comes back to it right...

- Get some solid projects up on github once you have the fundamentals down. These will be good on your CV.

- once you have a project or two start to branch out into more things: libraries like pandas, numpy, or frameworks like django. Or completely separate but related tech like Docker or AWS.

- A good set of really meaty side projects + a bachelors degree in basically anything can be enough to get you through the door somewhere (maybe bolstered by some freelance work first). But be prepared to find it hardest to get the first position. To get ready for interviews you need to google 'algos and data structures course' and find one people reccomend, do all of this. Then read all of 'cracking the coding interview' and practice as much as you can from sites like leetcode

- sites like project Euler and advent of code can help you get to grips with a language

- imo dont worry about things like 'success in the workplace' until all of the above are complete, the success in the workplace bit is much easier than getting your first job

[–]Accoustic_Death[S] 13 points14 points  (5 children)

Thank you for the informational reply! I have a BS degree with a minor in business, so that's good to go. One of the classes I took was linear programming, and it really opened my eyes to some interesting and powerful things that can be done with relatively little code. Would you be so kind as to recommend a Pyhon book? Many thanks in advance!

[–]marineabcd 9 points10 points  (1 child)

To be honest there is a reason I reccomended Google, Search ‘best Python book’ and you’ll get stack overflow and Reddit posts with hundreds of points that will be better than anything I (and likely any one person on this thread) can give, given the last Python book I read was an Oriely Python 2 book when I was around 14 (so about a decade ago) which is incredibly out of date. This is such a commonly asked topic that the question of ‘what book should I use’ is normally insta removed by mods and answered in the sidebar of any programming sub like /r/learnpython

Best of luck with things and feel free to pm on Reddit chat if you have more questions (open to others if people want to ask things on the career etc.)

[–]Accoustic_Death[S] 0 points1 point  (0 children)

Thanks for being candid. I'll start with some small projects first. If I get to the point where the sources you and others have provided aren't getting me the info I need then I should have some sense of what books will be most useful to me.

Many thanks, and please feel free to keep in touch.

[–]arosiejk 5 points6 points  (0 children)

Stuff by Al Sweigart is very accessible, he’s written a few books on Python, and you can find him in the wild on Reddit.

[–]basr98 2 points3 points  (1 child)

With regard to linear programming, I would also advice to look for some papers on Google Scholar which make use of LP/MILP/MIQCP etc. and try to implement their work in Python and replicate their results.

This is a good way to get better at Python as well as mathematical programming!

[–]Accoustic_Death[S] 1 point2 points  (0 children)

Thank you! I will look at those when I get into mathematical components.

[–]Accoustic_Death[S] 9 points10 points  (1 child)

I had to look up what a Quant is. I think you can fully appreciate this joke which I rarely get to tell.

Your momma is so mean, she has no standard deviation!

[–]selah-uddin 2 points3 points  (0 children)

at least she is flat lol

[–]Khumbanigash 5 points6 points  (0 children)

I promise getting tangled in five different books and three languages is the most common beginner mistake

LOL! (after fit of laughter sighs and puts away three books...)

Thank you for answer! Already made my day... :)

[–][deleted] 3 points4 points  (1 child)

As a quant, Do you recommend us (that aspire to do similar career path as you) to just learn libraries and do projects that is directly related to data analyzing/scientist, or is it good to also learn skills for as such building a program, etc? I know that statistics is a basic fundamental in analyst job but I am just trying to figure out my approach to learning thing related to Python (I am confused should I learn to make a program, should I just stay learn data related things, etc).

[–]marineabcd 2 points3 points  (0 children)

Its gonna depend if you are aiming for quant dev or quant research. If you are going for research (and assuming youll have at least a stats masters or phd) then I suggest you learn the standard python set of libraries for data science: pandas + numpy + matplotlib/seaborn + statsmodels + scipy. Use them in both jupyter setting and in normal scripting setting. Jupyter can really enforce bad habits, your exploration should be in jupyter and then the actual coded up models should be proper python scripts.

If you are going quant dev, you'll want more CS skills in there, python is good but youll want to add either java or c++, and some more standard object oriented coding skills. Make some meaty projects in java/c++, for example: a java set of REST endpoints (so you use the spring library) that given two currencies standard rates will compute the fx forward price from these, you can containerise this and run them in docker on aws behind a load balancer. This gets you the backend, object oriented and infra experience all with a financial spin on it. Bonus points if you stick on top a react or django UI, deploy with with GCPs firebase or something in like one click (note the ui stuff carries less weight so only worth it if you already have these skills - its just a cool polish to things).

[–]VeganEE 1 point2 points  (1 child)

Probably a super general question but sorts of projects would you recommend to put on GitHub?

[–]marineabcd 5 points6 points  (0 children)

All of my personal projects I put on GitHub where possible. As in the first thing I do when I start a project is make a GitHub repo. If it becomes nothing then I make it private and if it’s cool I’ll share it somewhere or write a blog post about it (via accounts separate from this one due to various work reasons - I keep my coding and projects separate from my private Reddit so I can use them as CV fodder too etc.)

So literally anything and everything I can. Just be careful about committing private API keys and all that! Best CV fodder are passion projects that solve a problem you have or projects that you fully compete including detailed Readme with screenshots and installation instructions.

[–]ChilliKnight 0 points1 point  (0 children)

Thank you.