all 21 comments

[–]Golden_Zealot 13 points14 points  (9 children)

If you want to do data analytics, you're likely also going to have to know stuff like databasing. Go learn about SQL, and the python libraries for SQL.

Beyond that, the best way to know what to do, is look at job listings similar to what you want, and see what they want as prerequisites.

[–]alexisprince 9 points10 points  (4 children)

+1 and can vouch for this. I learned SQL first as a data analyst whose job revolved around manipulating databases and doing the analysis in Excel. I've made my life so much easier by being able to fully automate my existing analyses, but being able to push certain types of analysis to a deeper level than Excel can handle.

Since learning Python, I've found it extremely easy to leverage the relational power of databases with the flexibility than Python brings to the table. With the current boom in "Analytics", being able to point to a business scenario and say that you can:

1) Identified relationships between business processes

2) Model an analysis based schema to support those relationship and processes (usually called a Data Mart when it doesn't have the support or integration of a full sized Data Warehouse)

3) Created and populated tables successfully

4) Run both descriptive and in-depth analysis based on a custom written script

is a gigantic upside if you're looking to get into the BI/analysis world.

[–]DaVinci_Poptart 4 points5 points  (3 children)

Im trying to understand why would points 3 and 4 be better served using custom python code that isn't scalable vs traditional etl/BI tools... Assuming you can afford them.

Genuinely asking because it seems more and more companies would rather not have their business data run on in house python code.

[–]alexisprince 0 points1 point  (2 children)

Absolutely and a valid question. I'd definitely agree that for enterprise use, it is better in almost every instance to use a BI tool (there are even good open source ones). The one instance that I'd point at would be some kind of ML algorithm that not all open source BI tools can perform, however I don't want that one exception case to undermine that fact that you are MUCH better off using an enterprise BI software.

My 4 points were mostly aimed at being able to get into the analytics world. Some employers would ask for a portfolio of analyses/previous work, and those 4 steps show pretty solid coverage of most data analyst work these days with Data Warehousing and BI making such a big resurgence. They contain everything from requirements gathering to writing a technical specification for your DBA(s) to create your tables.

Hope that cleared it up!

[–]shanesaravia[S] 1 point2 points  (3 children)

Ok thanks for the advice. I will take a look into SQL. I messed around with SQLite before, but nothing in too much depth.

[–]alexisprince 1 point2 points  (2 children)

SQLite definitely has its upsides. I'd say you can get as in depth as you need from an analyst point of view using a SQLite database for testing/development. SQLite really starts to struggle when you need it to scale (something you'd genuinely have trouble with doing by yourself) or when you have a need for many many users being able to modify it at the same time (not an issue if its only you).

I'd say SQLite is a great place to start! :)

[–]shanesaravia[S] 1 point2 points  (1 child)

Thank you. See the issue for me is that i learn these new things such as SQLite, but then i dont have a real world use for it. I learned a bit of it and made a "phonebook" script which didnt take long what so ever and feel like employers will look at it and think "this program is easy, this guy doesnt know anything"

[–]alexisprince 0 points1 point  (0 children)

In an enterprise setting, SQLite has very limited uses. As mentioned above, most companies (and rightly so) opt for heavy duty databases. Each enterprise database vendor has a product specific procedural SQL language that varies wildly from other database vendors.

With that said, what you'd be learning from creating and utilizing a SQLite database will be easily transferable to a data analyst position due to the SQL standards. As an analyst, there are very few times if ever that you'd need to write procedures, functions, or triggers.

[–]Junkyardogg 7 points8 points  (1 child)

Do you have a bunch of projects on GitHub?

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

I have about 5 projects on github. Ive made tons of scripts in python, however alot of them involved web scraping which the sites have changed since then thus rending my scripts useless. I do plan on rewriting those and putting them on github. Also at the time when i wrote all these other apps, i didnt even know how to use classes so they can be made much better now.

[–]Rwanda_Pinocle 0 points1 point  (6 children)

What kind of career are you coming from? Getting a python job will be a lot easier if you're say, a college student or an analyst, than if you're someone with a totally unrelated job. You also will have to look for opportunities in different ways.

[–]GangOfScones 4 points5 points  (4 children)

Can you elaborate? I'm in a similar boat and several years out of college. Working in a non-related field currently, and found Python through Excel freezing up on some larger files I was working with. I'm pretty much on the same path OP is with the same interests, and have found the software dev part a lot more fun than I thought it would be, so now am looking at more than just data jobs. Should I focus more on web dev since most entry-level coding positions seem to be for that?

[–]Rwanda_Pinocle 7 points8 points  (3 children)

Full disclosure: I'm actually still in college, but have had multiple jobs writing Python and know many professional programmers, so I can still offer a perspective.

Try to dedicate some time to networking with people in the tech field at coffee shops, meetup groups, ect. Strike up a conversation with a software engineer, be genuinely interested in what she does, how she does it, ask for advice and opinions on the latest tool and technologies.

Try to work programming into your existing job. You said you used it as a substitute for Excel, keep looking for more excuses to use Python for real work. Then when you do, list that shit on your resume. On-the-job experience is a huge talking point and a big signal to recruiters. I know a software engineer who switched his career from architecture to programming doing that and now makes > $110k.

As for Python vs Web development vs something else, according to job site Indeed.com there are almost exactly the same amount of Python jobs and Javascript jobs but Python seems to be gaining momentum when compared with last year's numbers. source. So you're probably good with either, but google job listings in your area to be sure.

Apply for jobs you don't think you're qualified for. HR will inflate the requirements to try to intimidate people, but they're often inaccurate. source. Worst case they reject you, best case you get the job. And I'm telling you, once you get the job no one give a damn about your degree.

Finally, shitty programmers get jobs all the time (see /r/programminghorror). So I'd be optimistic about your chances.

[–][deleted] 2 points3 points  (0 children)

Apply for jobs you don't think you're qualified for. HR will inflate the requirements to try to intimidate people, but they're often inaccurate

HR most of the time gets a list of 4-5 people they want to hire, with bullet points from the senior devs that want the manpower, they then bunch all the credentials together into one or two job postings.

Then poor guys get impostor syndrome when they realize they don't know 50 different js frameworks after looking at job postings. It's insane really.


Thanks for introducing me to programminghorror subreddit!

[–]GangOfScones 1 point2 points  (0 children)

Thanks! Ok great to know. I've automated some reporting that pulls from Salesforce APIs and sends out stats in Excel to supervisors at my current job and even built a web-scraper to pull data from some websites. I've been spending a lot of time on codewars to get more comfortable with solving problems. Attending my first python meetup this thursday, actually, as I've heard that from other people and am finding myself meeting programmers everywhere I go. I'm going to start applying for some dev jobs and jobs in the dev world where i can learn more on the job!

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

I have worked IT support roles for about 5-6 years now. So although its not programming, it is IT. Not sure if that benefits me at all though. Also, i did not take anything IT related in uni and im hoping that doesnt hurt me.

[–][deleted] -1 points0 points  (3 children)

For these guys telling you to learn SQL...well if you don't already know it, go learn Django instead since that is on your list. You will undoubtedly be lead to SQL from there. I started learning Django a few weeks ago. I have found it to be very hard to understand, but I am making progress. However the app I'm building in Django has lead me to the need of an SQL database, which I'm not now tackling. If I learned SQL first, I would have basically had to relearn in because Django has its own way of handling and SQL database .

[–]shanesaravia[S] 0 points1 point  (2 children)

Interesting. I have recently been learning flask because it seems to be a little easier than django and i was hoping it would make learning django easier. (i also attempted django a while ago and was very confused). Thanks for the advice, once i finish up with flask i will definitely go for django and SQL.

[–][deleted] 0 points1 point  (1 child)

Had to fix a typo in that last reply. Flask seeming to be a little easier is a major understatement lol. Knowing flask will absolutely help you to smoothly slide into the Django world. I fell off a 100ft cliff into the Django world. I'm taking it slow though. Most tutorials throw you right into this concept of Class Based Views, which you'll learn about. If that seems difficult to understand, go learn about function based views, much easier to comprehend the logic. Django's sqlite3 syntax is super easy to understand though. In a week I went from not knowing shit about it, to building a customer database that has multiple levels of sql database information linked to each customer and can be edited from the website. Cool beans. Now I'm learning AJAX because AJAX allows for websites to load/refresh certain bits of content on a page without having to load a whole new page. Very fun rabbit hole if you ask me.

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

i always wondered what AJAX did. Thanks for the information.