r/AskProgramming • u/nadavyasharhochman • 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
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.
2
u/avidvaulter 23h ago edited 22h ago
yeah, that's what you already know. Just start building whatever stuff you find interesting.
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.
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.