"It has been an absolute pleasure struggling through this course.
I am a beginner in terms of programming and after finishing this course, I feel very confidence in terms of my programming ability: I can read through a complex problem and design a solution, write maintainable codes, run Monte Carlo simulations on practical financial problems, slicing and dicing massive datasets and build data visualization tools like a pro.
The coursework is rigorous. There is a lot of exercises that students have to go through each level. I initially planned to dedicate 1 hour a day on the course and I must have spent at least 3-4 every single day to work through the course load. Writing codes is one thing but debugging and optimizing them are others time-consuming issues that I have learned a lot going through this experience. Get ready to work!
The course material is very hands on. It walks students through steps by steps building functions each level from very simple to complex, culminating in a very extensive and complex case study in level 7 of modeling a simplified Asset Backed Security. Even though the steps are well though out and implemented in the exercises, they left room to challenge students to think about ways to design, implement and optimize their approach. This is also part of the rigor of this course. The exercises are not easy! A lot of "Python for Finance" courses out there just feed you codes to run. This will not be one of them.
Many sophisticated topics were cover: decorator, multi-processing, data science packages etc. Best practices are also drilled in the lecture and carried out through the exercises. The video lectures are designed in bite-size and to-the-point, long enough to cover the topics but not too long that students are left drooling.
TA (APalley in my case) was excellent in terms of guiding me through this course. His hints given during the homework assignments left enough room for critical thinking on the student part while not giving the answer away. This is important as it helps you learn how to approach and breakdown a complex problems and identify possible pitfalls later on. The homework's comments are very extensive. I would recommend students going through problematic areas to re-optimize their codes as the technical debt only builds as you progress further through the course.
In the end, I experienced tremendous growth going through this course and would definitely recommend it for anyone with an interest in Python and Data Science. Non-STEM majors (as I am) might have a steeper learning curve compare to a Comp Sci major but you likely get a lot more return on investment out of this course.
Looking forward to more advanced Python courses to be built on top of this."
Let me start by stating the fact that I have actually gone from ZERO to hero. This course is intense, at least for me it was. I took a college course in Python few months before I started this course; however, everything I studied in that college course, Quantnet's course covers it in level 1. Yes level one is long, and intense, and no it doesn't get easier onward, it actually gets tougher by the day, but some of the chapter are not as long as level 1. After level 7, the course switches to more data science concentration.
All in all, I have learned tons, I learned how to think strategically and design my code in my own way (it takes a lot of time and the struggle is real!) but, once you go through that, things become easier, you start coding faster and faster; I don't know about you, but to me, that feels amazing. I am pretty happy with my results on this course; and to say the least the TA @APalley is truly AMAZING. He is polite, smart, patient; no matter how many questions we ask him about a particular question, he would always find a way to explain it to you in a way that you would understand. I wanted to thank @Andy Nguyen for putting this course together, this has been a pleasant and fruitful journey to say the least.
By the way, I am not a CS major, nor I am an expert in Python; so if you are in the same boat; I would suggest getting ready for putting serious hours. The HW assignments will take time, and once you start working on the assignment it will be an obsession, time will fly without you even feeling (it's kind of fun I am not going to lie).
Now that I have gone through this very steep learning curve; I am looking forward for the next endeavor!
Like the above testimonials mentioned, @APalley and @Andy Nguyen definitely did an excellent job with putting this course together and it covers a lot of useful material that is used a lot in day-to-day work--I think anyone who has worked even a bit in industry would agree with this.
While I didn't take the first half of this course, I can say that from both my past and current jobs, many of the Python concepts taught and practiced from levels 1 to 7, especially object-oriented programming, are used heavily in the financial/commodity industry, but unfortunately not covered in much detail in college/grad school. Oh and that Asset-Backed Security pricing project in level 7 is definitely something that will impress!
For the second half of the course, I will break it down into levels.
Level 8 gave an extensive overview on Pandas data structures, data manipulation and sources for data. This level greatly refreshed my knowledge of the Pandas library. In addition, it gave me a brief overview of some great sources for collecting data--as opposed to using a combination of the requests and BeautifulSoup modules (which works but definitely requires a good understanding of HTML) for data scraping. The one thing that really stood out for me is that this level covered the "melt" function--I've used this function so many times at work to get data (from, e.g., .json, .csv, files) into the right format to upsert into a database, as files often have multi indexing. Knowing this function beforehand would've saved a lot of googling and this course definitely gives you extensive opportunities to practice it to the point that it becomes second nature.
Level 9 covered data viz--an area that I will be focusing a lot on in work from Jan 2021 to Mar 2021. During grad school, I've used matplotlib extensively but I have leaned towards Excel plotting on the job as sometimes it gets hard to make things look nice effortlessly. After taking this course, I'm officially reverting back to Python because Plotly--this course is my first time experiencing with it--has solved many of these issues.
Level 10 material was definitely one of the key reasons I took this course. After taking the course, I'm actually happy that it focused more on data cleaning and bootstrapping, as these are areas not really focused on much (from what I've seen in other machine learning type courses) but equally important to effective machine learning model development. I do hope that a more machine learning focused Python course comes out in the future, as QuantNet always seems to deliver some of the very best online programming courses!
Hi @Qui-Gon, that's a good question. I'd say that intro C++ might require more time since Python is much easier to grasp, but my answer might be biased. I took intro C++ with zero C++ knowledge. When I took Python (while working my day job), I had already used it in both grad school and on the job. Perhaps @APalley, @Andy Nguyen or @Daniel Duffy can give you a much better answer.
I finished this course 2 months ago. I use 3 months to finish this course, which is the entire allowable period of the course. It is a hard time. However, I learned a lot of things. The first chapter would help you build a solid foundation of python syntax. Then, in the second chapter, the course would let you study object-oriented programming, which is the hardest chapter for me. However, after I finished the second chapter, I have known almost all the things I need to know about object-oriented programmings, like inheritance and decorator. In the 3, 4, and 5chapter, you would study some advanced syntax, which is not so hard, but it is very useful when building the project in chapter 7. In chapter 6, you would study Monte Carlo simulation, which is useful in manipulating risk and option pricing. In chapter 7, you would build your own object-oriented project, which seems difficult. However, if you study well in the previous chapter, it became easy when you are doing it. Chapter 8,9,10 are about data science. Although these chapters are using the libraries others have created, they are still not easy. You need to understand the structure of data deeply. These three chapters are also very useful. They helped me a lot when a write my honor thesis. Without the knowledge from this three-chapter, I would spent much more time on data manipulation.
In short, I am very thankful for this course. This course helps me build solid skills in python programming and data science. I would recommend this course to people who want to study python definitely.
Just a brief about myself. I graduated from Wesleyan University'19 with a major in Math and Econ. I took one basic intro to prog course in college but that really didn't help me that much. Wanting to pursue Masters in Financial Engineering in the future I enrolled for Baruch's C++ for Financial Engineering course.
Not going to lie it was the hardest educational experience for me. I spent at least 4 hours a day coding and trying to figure out how to code.
Eventually, I got through it, but what I took away from the course was that now I was confident enough to take on any coding course.
The fear of coding had left me.
Following that, I signed up for the Python Intro to Data Science Course.
About the course: I feel @APalley and @Andy Nguyen have done a phenomenal job at creating the course.
The course is very hard and you need to definitely grind to complete the homework. I won't be saying what is there in the course as it's already been covered in this thread but it will definitely give you confidence in Python and give you a deep dive into Data Science and what all is out there.
For me, these two courses have put me on track to hopefully create one or two algos for trading!
I had previous experience of coding.in Python. I learnt python concept here and there using YouTube. I did enroll in some of other online Python programming courses. But, I felt gap while working on some project at my work place or for my personal quantitative analysis project. I have completed "C++ Programming for Financial Engineering" and "Advanced C++ and Modern Design" both courses via QuantNet. I decided to enroll in "Python for Finance with Intro to Data Science". After looking at syllabus, I was so excited to learn all mentioned topics, mainly OOO, generator, context manager, exception handling, decorator, DATA PREPARATION and DATA PREDICTIONS.
After completing this course with distinction, I realized I should have enrolled in this course way back in months. This course is perfectly organized, video and demonstration by @APalley is thorough. Video length is just perfect. I am still amazed by his demonstration.
I am giving weight to this course than any other online course out there in internet world. Anyone who likes to learn python from end-to-end, at least for your work based on your need, this course is highly recommended.
On top of that, my work is in MBS, so that is added advantage for me to have this course which includes loan pricing, Level 7.
Whole course is exceptionally organized. I am thankful to @APalley for his feedback on my assignments. I am trying to be more pythonic way.
My goal for taking this course was to future-proof my career as things get more automated. They say that the pandemic pushed us 6-7 years into the future in terms of tech adoption.
I didn't want to be out of that party for long.
The students were promised to be ready for the first day on the job after this course. I believe it delivers well on this promise.
First, even in other coding languages (e.g. VBA in my work) I find myself more comfortable dealing with excel objects and methods having been introduced to their nuances in level 2 of the course. Second, aside from the programming aspect, it also delved into the fundamentals of processing data and data tables in numpy/pandas, which is almost always a demanded skill in job postings related to python.
With its pace, its coverage, and great TA support (where else can you get a one-day, personalized feedback?), nothing can beat this course in teaching you all the fundamentals you have to know in such short span. Plus of course the time-pressure and the tuition provide good motivation to get you that certificate.
This time-pressure aspect is very real. I see some comments with people saying they'll take this in just a month or two. The second week will really bring you back to reality: the reality that this course will require your effort, and that you better be prepared to give this time every day and all of your weekend especially for OOP, the text processing project, and the final project.
Learning python from the ground up was tough and the pace of this course was no joke. I spoke with my friends who have taken c/c++/python and they give me a blank stare (or an emoticon rather) when I discuss dictionary comprehensions on my first day on this course. My senior from work was impressed that we were discussing OOP on level 2 when, in his experience, that was usually touched on in advanced courses. And then we even covered advanced stuff such as generators, lambda, and let's not forget that indispensable introduction to concurrency that really changed my way of thinking about things. That maybe in other languages, things can be sped up by leveraging more of your computer's hardware. This topic was especially surprising to me and to my friend who actually worked on an advanced version of this topic for his thesis (as if it was not advanced enough).
The final project is something special. You will value an ABS using tools you may have never heard of if you're not coming from a very technical background. The amazing thing about this course is that you will be trained with all of the tools you need to do so without all the complexity. And you'll also be using other functions/classes you've used in prior levels. Each project builds on the previous and if you work at it hard enough, you'll find your way to this level confident with the skills that you can implement many of the things you'll encounter in your work. The good thing is, I don't think many of the things you'll encounter in the workplace (if you won't be working in the quant area) will be as tough as ABS valuation so you may have seen the biggest monster you'll ever encounter, and to have slain this monster by completing this final project is the best confidence-booster you can get before you apply for a Python-related job.
Let's not forget the data science portion of the course. True to the course we once again get bombarded with theory in the first level of this part (level 8), but the experience you get with these tools sets you up for the following levels in data viz and bootstrapping. I think in terms of employability, the skills you learn here will be indispensable as companies nowadays are hiring people who can manipulate/visualize data be it in SQL/R/Python, and this course effectively teaches you how to do this in python as there is no shortage in exercises for this part. What is also good about this part is that it is largely free-hand and you're free to make your submissions as complicated as you need it to be able to juice out all of the practice you can.
All in all, this course really was time well-spent for me before I went back to preparing for CFA Level 3. Beyond programming concepts, it taught me to see the world in a more exact way, and this for me is the most important takeaway of the course. It has taught me to see things as an object-method group, and to diagnose problems by assessing whether an object is supposed to have that method or function. I was happy that I learned to think more programmatically using a more accessible language such as Python, and I'll be sure to take these lessons to my day-to-day responsibilities.
Thank you @Andy Nguyen for putting this together, and thanks to @APalley for the constructive and prompt feedback and for being very exact in defining my problems and providing solutions.