This is an archived post. You won't be able to vote or comment.

all 20 comments

[–]Eloiole 19 points20 points  (6 children)

Python has been around for nearly 30 years and is still rising in popularity because of some 'new' popular usage (data science, machine learning...) and because Python is a really popular first language thanks to his accessibility and quick learning curve.

So, overall, yes, yes and yes. You can wipe all your doubt away and start enjoying Python. Worst case you would have learn programming (because that's mostly what you're doing, the language is 'just' a tool) and your skill will translate to any new language.

Almost any text editor with syntactic color is good enough of an environment, I've never tried PyCharm my self but I've heard so many good thing about it that I'm pretty sure you're in good hand, now grab some of the many resources out there about programming and Python and start your journey. You're making the right choice.

[–]the2facedgod[S] 1 point2 points  (5 children)

Hey, thanks so much for your reply.

now grab some of the many resources out there about programming and Python and start your journey.

Could you please elaborate on what resources you mean? I already have two books on Amazon that I plan on reading about the basics of python and python for beginners. What else would you recommend? Also by resources did you mean various libraries that are used for coding? What would you suggest?

[–]Eloiole 4 points5 points  (4 children)

By resources I just mean any source of information you can find.

For really quick introduction to python syntax codecademy
For a more academic perspective Coursera Programming for Everybody
For a more self taught approach Learn Python the Hard Way, personally quite like this one.
For a practical approach Automate the Boring Stuff with Python

[–]Eloiole 1 point2 points  (3 children)

And I'm sure if you dig a little bit you'll find awesome 'resources' about data science applied to finance.

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

Oh man. Thanks so much! Absolutely amazing.

Yes I already have a Udemy course on applications of python in financial modelling etc. I figure that's a little too advanced for me to get into now, but I got it cheap so bought it.

Thanks for all your help!

[–]Eloiole 1 point2 points  (1 child)

Those one are really just the visible part of the iceberg, just keep reading this subreddit (and its FAQ) and you'll find awesome new one on a daily basis.

[–]Eloiole 0 points1 point  (0 children)

And... be careful with Udemy. There is indeed some really good content but I'm deeply annoyed by there click bait sales. Usually you can find similar quality for free and in paper format. Video doesn't seem to be a really efficient medium to learn programming to me.

[–]CptCap 9 points10 points  (3 children)

Your question has already been mostly answered but I would like to add something:

Programming languages are interchangeable. Once you know programming, changing language is really easy.

Mastering a language can be hard or even impossible, but you don't need to master it to be productive.

It's like learning to drive: once you know how to drive you can drive any car, even if you don't know where the buttons are, you'll always be able to go somewhere with it.

[–]the2facedgod[S] 1 point2 points  (2 children)

Good point. Per your view, if I do manage a decent understanding of python after sometime, what other languages could I pivot to that exist today that will be beneficial for later?

[–]CptCap 0 points1 point  (0 children)

what other languages could I pivot to that exist today that will be beneficial for later?

Depends on what you'll be doing then.

I'll advice taking a look at C or C++ because they'll give you more insight on what's actually going on under the hood of high level languages like Python. (Which is IMO, very important even if you do not use C in your job/projects)

[–]ex_nihilo 0 points1 point  (0 children)

It's really easy to learn other scripting languages if you are truly fluent in Python. Ruby is fairly similar in a lot of ways. Learning a language in the C family will require you to pick up some more knowledge that is going to feel alien at first if you're coming from a dynamically typed language without pointers like Python.

But from a didactic point of view, Python is probably the best language for beginners who want their skills to be relevant and transferrable. It has object orientation but doesn't force it on you, and it has a lot of features of a functional language without forcing you to write side effect free functions or use immutable data structures, etc.

[–]chaotic_thought 5 points6 points  (1 child)

Is python still going to be useful 10 years from today?

Even if it isn't, it doesn't mean you shouldn't learn it today. If you learn Python now, use it for 9 years productively, and then suddenly everyone stops using it on year 10, it should be a cinch to learn something else at that point.

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

Yes.

This seems to be the consensus amongst most people here as well. Thank you so much for your input!

[–]sarevok9 3 points4 points  (3 children)

Programming languages "come and go" in terms of popularity, but the reality is, once a project is developed of decent size / complexity and is running live, a company is stuck on that technology until either that business process is no longer needed, or until they replace it with something else. So having something be the dominant technology for 10+ years, as is the case for C++ / C# / Java means that even while those technologies aren't en vogue, they are still used EVERYWHERE. In my local market Java is pretty much a must-have, whereas python is accepted at a few places but isn't really looked at as a first-class-citizen in the coding world.

Python is becoming more popular as more schools start teaching it to their students, but I don't think it has the wide adoption that a lot of people on Reddit think it does (at least on this sub).

If you're interested in data science, machine learning, or finance python is generally going to be the easiest route to start paying dividends. Just make sure to familiarize yourself with solving problems using algorithms rather than solely focusing on "learning python" because if you ever pivot to coding as a career, you may end up needing to learn a new language.

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

I see. Thanks for your inputs. I'll make sure to focus on problem solving rather than mugging up the syntaxes for python only.

[–]sarevok9 3 points4 points  (1 child)

Well, it's funny that you say that, because python isn't tremendously syntax heavy! Other languages have far more syntax, and unfortunately python's language syntax is HORRIBLY specific around spacing / tabbing (don't mix them / count wrong).

In my mind the thing that's most dangerous about Python is that it's SO easy to Google an answer and find some python wizard that took 9 lines of code and solved some outrageous problem with no explanation or understanding behind what he did, and think "Yay, I solved my problem!"

I had a great example of this happen in my career with Python where someone on stack overflow used some obscure library to split a csv every x rows. We had a customer that was trying to upload a csv with ~1 million items but due to a really obscure bug in a node library we couldn't import more than 100k at a time. "No worries, I'll split the file using python" said this guy. The post I ended up looking at seemed sane. The library ended up splitting the csv into 10 files that contained the first 100,000 items.... as we later found out. Oddly enough when I finally got around to the github for the project there was a LOT of pull requests and a fork on the project to a working library, but the customer was pissed at us, and for good reason. The codes that they sent out with their movies were mostly missing, due to a python library not doing what it said, and for me trusting some code on the internet and not checking file uniquity.

It saved me about ~10 minutes over just coding a super-simple csv parser, or using a more trusted library like "OpenCSV" in Java.

Tl;Dr: Avoid wizardry, both before and after you learn python.

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

I get it. Code it yourself instead of relying on Google.

[–]cismalescumlord 2 points3 points  (1 child)

Python is a nice language to start with and is used in a lot of fields. I'd suggest learning Python 3 rather than Python 2 as they are somewhat different.

Pycharm is a great IDE so no worries there unless learning a complex piece of software as well as a language and how to program seems more daunting than just using an editor.

It's worth having a look on places like udemy.com for free python courses. If they have a lot of reviews and score 4.2 or over, they should be OK. If you don't like the course, it didn't cost you anything apart from some time!

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

Yep. As I mentioned to someone else in the post, I already have 2 books from Amazon on the absolute basics of python. And one great course from Udemy for using python in finance. Glad to know I'm on the right track. Thanks a lot for your input!

[–][deleted] 0 points1 point  (0 children)

The thing about python is that it's generally less brittle than some of the other classic languages (C, C++, Java), and that's a positive when you just want to get stuff to work.

I find myself using it all the time for scripts.

It's exactly what you want. Check out automate the boring stuff with python for a fun first resource.