Python journey

I started reading this python crash course book because programming is something I have always wanted to do. So much so that I am applying to an MBA this Fall and want to take some programming course so that I can get a more tech-focused role while still maintaining finance in my title. It's been really cool so far and actually not at all that difficult. Is there anything anybody recommends I do to keep practicing? I would love to get to MBA in a year from now with a solid base of knowledge.

Trynna reach out to the maybe not so present SWE on WSO

Comments (25)

Jun 28, 2022 - 4:29pm
Rotterdam, what's your opinion? Comment below:

If it isn't difficult then you're not really challenging yourself.

I got done with a intro to programming in Python course not too long ago and here are some of the things we did.

1. Scrape text data from a bunch of different wiki pages and then use that to create a k-nearest neighbors model to compare articles against one another by their content. Once you have the data the only modules used were numpy to build the matrix.

2. You can find data on how wiki articles are linked to one another. After parsing this data into a graph you can create depth first and breadth first search algorithms that you can use to find different paths from any article to another.

3. Recreated a very basic version of Page Rank utilizing recursion.

If you want to go into finance then most likely what you'll end up doing has to do with data. Given that, you should really practice working with different data structures. Can you build nested dictionaries and then iterate through the different levels of them to perform various calculations?

Jun 28, 2022 - 11:53pm
IslandBoy, what's your opinion? Comment below:

These are some great examples. The best way is to start by doing real projects and just googling your way through how to do this or how to do that. IMO the leet code type algorithm practice isn't super applicable for the type of analysis done in most of finance. For more quant type roles it can be useful, but not always.

Jun 30, 2022 - 12:16pm
luketr, what's your opinion? Comment below:

good stuff


Jun 28, 2022 - 5:24pm
monkeyMAN8008, what's your opinion? Comment below:

Really interesting. And good point. My book seems to focus on very literally practicing only what I just learned within that specific chapter. So like create a list of favorite cars and writing a message to loop through the entire list is one example. Lol very nooby stuff I know. Not really applying it to anything worth showing off unlike you. This is the book I have -->

Can you get a little more specific with what's your role and how programming applies to your daily work routine? 

Jun 28, 2022 - 5:51pm
Rotterdam, what's your opinion? Comment below:

Seems like a good book except I would skip the last section on web apps (for obvious reasons). I don't have personal experience with this book below but looking through the table of contents it looks like a good one for data analysis. The key is finding one that focuses on data structures and the algorithms used to explore those structures.

My work right now isn't actually very programming intensive. Just some models built in Jupyter notebooks along with stuff in excel I am now working on redoing/improving in Python. I am getting my masters in data science to learn and hopefully end up learning some skills that allow me to build out the data analytics group at my company so we can leverage more real time data pipelines. Right now I mainly build and trade simple supply and demand based trading models in the commodity space.

Learn More

300+ video lessons across 6 modeling courses taught by elite practitioners at the top investment banks and private equity funds -- Excel Modeling -- Financial Statement Modeling -- M&A Modeling -- LBO Modeling -- DCF and Valuation Modeling -- ALL INCLUDED + 2 Huge Bonuses.

Learn more
Jun 28, 2022 - 6:32pm
monkeyMAN8008, what's your opinion? Comment below:

You want to do your masters and stay within your current role? Or slowly take on more programming responsibilities that might not have to do with trading? Because I was hoping for something that could focus more on financial services with a side of programming to perhaps help with the huge amounts of data. So, maybe not a complete data scientist role like you seem to going after. 

Jun 29, 2022 - 9:24am
Pescepescetarian, what's your opinion? Comment below:

I don't recommend any Harvard CS courses. They take too long to explain an easy concept and is really geared towards to people who have no knack for technical things.

I recommend MIT MOOCs.

Jun 28, 2022 - 5:59pm
Horn101, what's your opinion? Comment below:

Honestly try dojng as many projects as you can. Use stack overflow, learn how to implement logic. Reading about it is totally different. Using it professionally I've learned more than I did in school. Hope this helps

Jun 28, 2022 - 7:51pm
Harvard_GS_HBS_KKR, what's your opinion? Comment below:

Leetcode is the best way to build programming intuition, become faster in implementing ideas, learning and applying fundamental data structures, practice recursion etc. There is nothing that completing basic projects gives you that Leetcode doesn't. You get immediate feedback and there is a plethora of code and discussion around every problem, from which you can build your repertoire of logical structures and paradigms

Most Helpful
Jun 29, 2022 - 9:17am
GoingToBeAnMD, what's your opinion? Comment below:

First off, congrats on learning python. It puts you on the right track for a lot of business situations in the future. 

I have been programming for the greater part of my life (started as a child with BASIC, went to a technical high school where I took formal classes, have written a million programs as a professional, etc), so I will give you my view from that perspective. You are getting some good advice above (stack overflow, leetcode, code your own project, etc) but I'm going to get a little more "meta" on you.

One of the greatest things an instructor taught me is that programming is not about a language, it's about a thought process. It's about knowing what you want to write and the components (not code) that you need. So it all comes down to having a very, very solid understanding of your control processes (like IF statements) your continuous processing (like loop statements) and the like. Don't think in code, just think about the flow and the ifs and loops you need for that. If you can think of your projects in this way, then you can come up with a plan for what a program should look like before you write it.

Here's the mind-bender: If you can see a program in that way, then does the language really matter? Virtually all languages out there have control and loop statements, right? So if you're really building skills at programming then you should be able to write in any language relatively quickly. You should just be able to google how to write these statements in X language and create the same program in multiple languages very quickly. 

So, that's my advice to you, pick another language and learn that too. Take a project that you have in Python and start to write it in another language. When you can do that in a very quick way then you have really mastered programming and it will help you in all the languages you know. It's one of the first steps in creating "the world as an abstraction" and gives you the confidence to code just about anything you want in the future. 

Good luck!

  • 8
Jun 29, 2022 - 9:43am
monkeyMAN8008, what's your opinion? Comment below:

Yeah, I picked up Python because I also realized how businesses are going to have to leverage more of it down the line. I have to say I totally agree with what your professor taught you. The book I've been reading (link is the in the second comment) places importance on just thinking ahead and writing down comments on your code explaining your thought process so you can kinda guide yourself to the end goal, which is the same across multiple languages. Stop worrying about making the code look pretty or making sure the code is "right" and just worry about getting to the finish line.  

Thanks for your advice

Jun 29, 2022 - 5:26pm
ConfusedGuru, what's your opinion? Comment below:

Good for you, I wish I knew how to program. There are tons of free YouTube tutorials available. Also, I recommend you just dive into a project; coding is the best way to learn coding, ironically 

Jun 30, 2022 - 12:47pm
tackytech, what's your opinion? Comment below:

What are you going to use it for? There's a huge difference between casually using a language like Python for writing small scripts and ad-hoc solutions for problems at hand, and writing (software) industry standard software. The former merely requires you to take a programming and python 101 class, and getting to know the various libraries. The latter requires deep and intimate knowledge with the actual language, firm grasp on fundamental CS theory, and then obviously more Software Engineering related topics. 

It is absolutely possible to write the shittiest and slowest code imaginable, if your data and scope is small. Once you start building stuff others might use, or even you will use as a regular tool - writing robust code becomes more important. 

Either way, good luck - I love using Python for everything from smaller and quick/dirty problems, to medium sized projects. Used it for around 10 years now, and development is rapid. Use it daily for lots of data analytics work. 

  • 4
Jun 30, 2022 - 9:43pm
monkeyMAN8008, what's your opinion? Comment below:

Maybe more so on an ad-hoc basis than anything for now since I'm going to be practicing it on my own for the next year (until I would eventually start classes), but then maybe geet good enough that I can actually share my work with others. Would love to use it to make my work faster especially when working with data for example so kinda like you. 

Could you mention what you do and how you use python in the work place? 

Jul 5, 2022 - 12:07am
Lester Freamon, what's your opinion? Comment below:

I'm a CPA who taught himself some Python and am now working in a more data-oriented role. The best way to learn, as others have already alluded to, is to tackle real problems you encounter in your workflow and write a script to solve your problem. This usually means breaking your problem down into smaller steps and then figuring out what functions or which package within Python can execute that step for you.

For example, in accounting/corp fin work, a lot of the work is centered around aggregating a bunch of canned reports from different systems, cleaning the data, and then performing some calculations to create a consolidated report or some sort of analysis around the data. The problem with this is that it's time-consuming to do this every month and it's not necessarily an easily scalable process, depending on how large the org is, because Excel doesn't handle spreadsheets with 500K+ rows very well. The way that I therefore taught myself was by breaking down my month-end process into smaller steps, google/youtube/stackoverflowing how to solve each substep, and then pressure testing my script against previous months (to which I already had an answer for) to see how well it worked.

Note also that while the above is perhaps the best way to learn independently, there's a huge difference between using code for situations like that and formal software development. I'm sure there's all sorts of code I write that's extremely slow to process and/or wouldn't scale well with much bigger datasets or in a production environment where speed and efficiency are vital. Nobody cares in finance/accounting if my script takes 1.5 hours to run because it's still faster and more accurate than doing this manually for 4 hours, but that's not necessarily true for folks designing applications, for example. 

Jul 5, 2022 - 1:20am
monkeyMAN8008, what's your opinion? Comment below:

Delectus harum quod pariatur qui dolore eius. Voluptatem ratione id libero perferendis. Rerum deleniti provident rem possimus.

Asperiores perspiciatis consectetur laudantium non illo fugiat. Quo voluptatum quae aut enim modi tempore aut. Porro repellat perferendis provident odio. Recusandae sunt dicta assumenda aut ab sed facere pariatur. Culpa aperiam ipsum nesciunt.

Jul 5, 2022 - 11:44am
Lester Freamon, what's your opinion? Comment below:

Non commodi consequuntur voluptatem eius eius. Omnis ut ipsum amet iure qui. Cumque repellendus eos veniam hic suscipit. Et quaerat nihil et quam et. Voluptatum molestiae aperiam ea.

Culpa reiciendis corrupti tenetur libero animi debitis et. Saepe nobis nulla dolor minima expedita quo ut rerum. Velit vero qui qui non omnis saepe minima repudiandae.

Start Discussion

Career Advancement Opportunities

August 2022 Investment Banking

  • Jefferies & Company (▲03) 99.6%
  • Lincoln International (= =) 99.2%
  • RBC Capital Markets (▲09) 98.8%
  • Bank of America Merrill Lynch (▲03) 98.4%
  • Macquarie Group Limited ABN (+ +) 98.0%

Overall Employee Satisfaction

August 2022 Investment Banking

  • Lincoln International (▲06) 99.6%
  • Jefferies & Company (▲12) 99.2%
  • Greenhill (▲07) 98.8%
  • PJT Partners (▽03) 98.4%
  • Macquarie Group Limited ABN (▲22) 98.0%

Professional Growth Opportunities

August 2022 Investment Banking

  • Jefferies & Company (▲05) 99.6%
  • Lincoln International (▲03) 99.2%
  • RBC Capital Markets (▲12) 98.8%
  • Bank of America Merrill Lynch (▲05) 98.4%
  • William Blair (▽01) 98.0%

Total Avg Compensation

August 2022 Investment Banking

  • Director/MD (10) $613
  • Intern/Summer Analyst (308) $417
  • Vice President (38) $392
  • Associates (205) $256
  • 2nd Year Analyst (125) $163
  • 3rd+ Year Analyst (17) $156
  • 1st Year Analyst (408) $151
  • Intern/Summer Associate (80) $148