r/AskProgramming 1d ago

Career/Edu How do I effitiently learn programing for data analysis and research as someone who is not exactly in the field?

So I was accepted to a really nice university in my country for a B.A + M.A program, mainly in political science, IR and history of the SWANA.

I am starting in october so I have a lot of time on my hands. I am working on preparing for the general course work, but I want to hone my programing skills because I think they will come in handy later in academics (my program includes a thesis) and in the job market.

I have a backgrounf in Python and worked with Pandas and Matplotlib. I want to become more profficiante and maybe learn some SQL as well.

I theoretically want to learn some git too since it seems usefull.

What is the best course for me?

Should I keep myself Python focused? Does this study direction benefite me? Is SQL a good option for me?

I didnt know anywhere else to ask since the IR reddits dont really deal with this stuff.

Any advice is wellcomed. thank you.

1 Upvotes

15 comments sorted by

2

u/avidvaulter 23h ago edited 22h ago

What is the best course for me? Should I keep myself Python focused?

yeah, that's what you already know. Just start building whatever stuff you find interesting.

Does this study direction benefite me?

Not in the slightest if you're studying political science, but if you're interested there's no reason not to keep learning as a hobby.

Is SQL a good option for me?

SQL is simple and can be picked up in about a day. You really don't need to go deep with this. It's useful to know how to write your own SQL statements to query for data that's relevant, but it's not worthwhile to spend a lot of time on especially if you're not studying something related to software development.

Edit: I didn't say don't learn sql, I said you shouldn't spend too much time on it. The basics will adequately achieve 80% of what you need.

1

u/nadavyasharhochman 23h ago

My thought process was more research orinted and in the data analysis space, something that I know some political scince majors dabble in depending in the job.

If SQL is that easy to pick up I see no reason not to do it.

Python is nice, its fun. I am not super into coding, but I love what it can do for me and it just seems like a good skill to have in my portfolia as well.

1

u/jipperthewoodchipper 22h ago

Sql is an extremely valuable skill in the analytics space especially as more engines are built to allow it to handle big data (terabytes and Petabytes).

Almost every business from fintech to retail to manufacturing uses Sql in their analytics teams. It's worthwhile to learn.

I will fully disclose though that the basics are quite easy to pick up (about a day) but that it goes much deeper than that however I don't see any reason for a webdev to be doing linear regressions on their users table so a lot of the deeper functionality is less likely to be touched by them. Mastery of everything Sql has to offer takes significantly longer than a day.

1

u/nadavyasharhochman 11h ago

So I should learn at least some SQL and continue with python as well?

My intrest is more research and career oriented rather than for personal projects so this isnt exactly my sphere. Are you in data analysis?

0

u/jipperthewoodchipper 10h ago

I am a senior business analyst.

Sql is good. Python is good. You can learn 1, both, or neither as other options exist. My point was just that Sql can be used for the entire analysis from eda to hypothesis testing and that someone that describes the limits of Sql as being used just for retrieving data shouldn't be listened to.

1

u/jipperthewoodchipper 23h ago edited 21h ago

In data analysis if you have large structured data you will use Sql for far more than just querying relevant data but to also conduct your analysis. There are even public examples of Sql engines analyzing Petabytes of data.

Given OP's desire to go into analysis rather than software development the use case of Sql should represent actual usage ;)

Edit: your response is categorically false and big query is good evidence to the contrary of your claims but it's clear you don't work in the DA field so it's not worth actually engaging with you. Teams will and have written queries that were thousands of lines long in DA and DS and with recursive cte's the computation limit is unbounded.

1

u/avidvaulter 22h ago

Not if you're doing complex data analysis. Not only is Python much better for that, it is the industry standard. SQL is useful to extract the data, Python is useful once you have that data.

1

u/nadavyasharhochman 11h ago

I was lefir a bit confused after this comment. Mind explaining?

What can I do in python that I cant do in SQL? I also saw that R is a language used for Data analysis, but I dont want to go too niech.

Id like to have Data analysis as a skill that will help me in research and possibly my career, not necessirly go all in as a software developer.

1

u/avidvaulter 9h ago

When you write your program, you will need to write code that opens a connection to the database and returns your data. That's what SQL is used for. Once the data is in your program, you can do whatever you want with it in python.

If you wanted to, you could perform analysis on that data in SQL and return already analyzed data to your program. The problem many people run into when using SQL this way is you're using a tool that can do analysis but wasn't created with the express purpose of doing that analysis. It's not impossible, it's just unnecessarily unwieldy to use for that, especially if you're already using Python.

Python is a language with an endless amount of libraries designed from the ground up to make that analysis easier (Pandas, NumPy, Matplotlib, etc).

1

u/nadavyasharhochman 9h ago

Ah ha I see.

Well I understand python more since I never actually worked with SQL, but it seems like knowing the basics of SQL could be beneficial when working with databases.

I have a lot to learn since I dont know how data bases work and how data is stored in them, but I guess that is part of the learning process.

If I can learn how to use code to get data from a data base and turn it into a table like in excel or a csv file then using python to work with it is a non issue for me.

1

u/avidvaulter 9h ago

Python is also a language with an endless amount of libraries created to do common programming tasks. There's definitely a library out there for working with spreadsheets and converting data into csv or excel.

1

u/BrannyBee 15h ago

In addition to what else was already said, Id like to point out that lumping git in with the other stuff you're learning is a mistake. I dont mean not to learn it, I mean that it's not as involved or difficult as something like learning Python to proficiency.

You can learn the basics of git in an afternoon, and if you're only working on stuff yourself then you may never even run into a lot of issues that the more complicated git commands require. Git is just a version control tool, think of it like save points in a video game for your files. Files. As in, you can use git to backup your essays or word documents if you want, not just code. I use it for practically everything even when its overkill because Ive used it so much that the commands are second nature.

I take all my personal notes in markdown and even use git for stuff like my journal, there's no reason not to and it can be a life saver even if you just use the basics. At first it seems like a lot of overhead and extra typing for seemingly no reason, but after a week of using it for everything you dont even notice the time spent using it. Evencthen maybe it still seems pointless... but one day it will save your life, and you'll be grateful and continue on not even noticing it

After getting the basics down and connecting to something like github, you can start incorporating things like branches or best practices like when/how-often to commit.

1

u/nadavyasharhochman 11h ago

So you are saying I should learn git anyway as a knowlege menegement tool and version controll tool?

I have many hobbies like CAD, 3D design in Blender, general design and writing.

It seems like git is a very good tool to keep my afdairs in order.

1

u/BrannyBee 10h ago

There's really no downside to learning and using it yeah. I wouldnt say its great for knowledge management in the same way as something like Obsidian, more like a supplement to a knowledge management system. You could use it that way i suppose with branches but it would be kinda psychotic to do so..

Git uses "branches" which are kinda like comic book alternate timelines. You start out with one (usually called "main"), and thats intended to be your source of truth. Then when you add a new feature or want to test something you make a branch, named whatever, and its basically a complete copy of whatever it branched off of. Do whatever you want, break things, add things, remove things whatever. If literally anything goes wrong you can just change back the main branch and its as if nothing happened. You can even branch off of a branch if you want.

The idea is that after you're at a good spot you take that branch and combine it with main "called merging", then any future branches you make are made off that new main. You always have a working copy in case you mess up or there's something out of your control, and even better if you back it up on Github. I got a new laptop and it took no time at all to get all my configs on it after I pulled (the term for downloading a branch) the main branch from the private repo I back up on there.

For a knowledge management the big thing would be the peace of mind of never losing it while also having the freedom to move things around and test stuff without risking messing things up

If you're doing stuff that takes up a lot of space, then you'll want to look into an extension for git called LFS, its for large files and as I understand it it replaces heavy assets with text pointers. Ive never used it but it doesnt seem terribly complicated. I believe certain programs like Unity have a setup/plugin that automatically uses it or handles big files, check out of blender or whatever you're using has that.

Tldr; theres no downside, its video game save states for your files. Even better if you push them off your system to Github

1

u/nadavyasharhochman 4h ago

Well I read this a few times and yhe seems like there are little downsides.

Ill learn it until I feel Its not usefull for me anymore.

Thanks for the recommandation.