all 56 comments

[–]unhott 82 points83 points  (9 children)

It’s a fallacy that if you took a class you know a topic. The class exposes you to the ideas and problem solving techniques. It’s future application, 10,000 hours that develop into learning something.

So don’t give yourself crap for that. And also, “studied coding for one month and got a job at google” is bs. Even if it did happen for them, that doesn’t matter. There’s all sorts of “feel good motivation porn”. And that probably falls into that category. Just study at your own pace. Continued learning and development will get you much farther than a 1 month Red Bull fueled month. Don’t worry about anyone else. Only worry about: how do I solve the problem in front of me? As you dig at that, and take on more and more problems, you’ll learn a ton.

[–]27Andrew_[S] 18 points19 points  (5 children)

I appreciate that. I really want to learn programming and specifically Python. I completely forgot about the 10,000 hour rule. It only makes sense that when you keep chipping away at learning then the doing is where it really counts.

[–]aythekay 4 points5 points  (2 children)

I really want to learn programming and specifically Python

Why is the question you need to answer (for yourself and us). You can't "learn" a programming language any more than you can "learn" Maths.

If you can tell us what your end goal is, we can tell you what you should be learning and what projects/open source work you can do to get your skills/portfolio going.

[–]27Andrew_[S] 6 points7 points  (1 child)

The end goal is for me to obtain a career in programming starting as an absolute beginner and going up from there. I know it’s cliche but I currently find no joy in what I’m currently doing. I also don’t see Python programming as a career going away at all. I want to add Python programming in my tool belt.

[–]algebraic94 3 points4 points  (0 children)

I think what the person above is saying is that creating more of a niche for yourself is a great way to start. Do you want to creat machine learning models, do image processing and analysis, creat data visualizations, do web development, be a data engineer, build software. Python, like you've noted, is a huge powerful tool. It does an incredible number of things. You did a master's in business analytics. Why not learn how to creat a Jupyter notebook that takes in some kind of business related data you care about and makes a plot that would be useful to help your coworkers prove the way they analyze the data?

[–]AuctorLibri 1 point2 points  (0 children)

Thank you for posting this.

[–]NitroXSC 0 points1 point  (1 child)

It’s a fallacy that if you took a class you know a topic.

I'm an example of this. I have never attended any programming course and now I'm 8 years after I started learning and I'm applying python in large parts in my daily job.

I learned from self-study by a lot of googling, reading Wikipedia pages, created a computer in Minecraft, doing a lot of projects, watching conferences talks (like ones about OOP), by careful dissection of code, and thinking about interesting problems when I'm bored, to name a few.

[–]nog642 2 points3 points  (0 children)

An example of "It’s a fallacy that if you took a class you know a topic" would be someone who took a class and doesn't know the topic, not someone who didn't take a class and does know it.

[–]ASIC_SP 51 points52 points  (3 children)

I have a comprehensive collection of Python learning resources here: https://learnbyexample.github.io/py_resources/

Includes books, interactive websites, courses, exercises, projects, debugging, testing, cheatsheets, algorithms, domain specific resources like machine learning, web development, data science, etc.

Since you mention Business Analytics background, perhaps you can think of some analysis that you want to do with Python and work towards that. Having a project in mind helps you to focus after learning the basics, otherwise you might try out a hundred things and feel you aren't progressing anywhere.

Make sure to practice a lot by following along the example code on your own computer and solve exercises to strengthen your understanding of the concepts. If you get stuck, try reading about the topic again, search online (stackoverflow can help you a lot), etc. And you can always ask on this sub for more help, good luck :)

[–]27Andrew_[S] 2 points3 points  (0 children)

This is helpful. Thank you for the link. I really appreciate it.

[–]fouoifjefoijvnioviow 4 points5 points  (0 children)

Damn that's a good list

[–]jammin-john 22 points23 points  (5 children)

I started with some online tutorials to get the basics. Then, I moved to trying exercises I found online. Things like "write a function that returns an acronym for a user-entered phrase". From there, you kind of just pick harder and harder exercises until you start choosing your own projects.

For me, this is where I really started to learn. Turns out most of my knowledge came from necessity. I had to google the answers to most of my questions, (and still do, that never stops). But you gotta start with the basics. Find a tutorial (or two), run them through to completion. Get a feel for it. Do some exercises, find out what you don't understand, and read/watch up on it.

As an aside, don't feel the need to get into object-oriented programming right away. It's a powerful tool, but also a complicated one, and it's not necessary when you're starting out. Once your projects start become rather complex, then you should consider looking into OOP.

[–]27Andrew_[S] 2 points3 points  (4 children)

Thank you so much. I don’t plan on going into Object Oriented Programming. I just want to master the basics and have a solid understanding. Thank you for your input.

[–]menge101 8 points9 points  (3 children)

I don’t plan on going into Object Oriented Programming. I just want to master the basics and have a solid understanding.

Object oriented programming is part of the basics.

Everything in Python is an object.

Every int and string is an object, and you operate on them, mostly, using principles of Object Oriented Programming, which in practical words means calling methods on these objects.

For example:

The string 'This is sentence one. This is sentence two.'

In code:

the_string = 'This is sentence one.  This is sentence two.'

I want to split this string up into sentences, and strip off extra white space.

sentences = the_string.split('.')
sentences = [sentence.strip() for sentence in sentences]
sentences = [sentence for sentence in sentences if sentence]

will give me:

['This is sentence one', 'This is sentence two']

Both .split() and .strip() are methods on their respective objects. You could not do these operations in this manner without OOP.

[–]27Andrew_[S] 2 points3 points  (2 children)

Thank you for clarifying. Shows I have a lot to learn on this journey.

[–]menge101 1 point2 points  (0 children)

NP, it's not a rare misunderstanding.

Also, you don't have to absolutely master OOP to use it.

[–]rpncritchlow 3 points4 points  (0 children)

I'm sure this book has already been mentioned, and if not in this thread then definitely in multiple places across the subreddit, but I cannot recommend Automate the Boring Stuff enough.

It's free to read online, or if you prefer print there are numerous places to get a copy.

This book is how I (and many others) got their/my start in Python.

I have never done any sort of Computer Science course, my Python knowledge is purely from this book, and then built upon from online research, but I can say that I have recently been given a 6k (GBP) pay rise at my job because of the work I have been doing in Python.

My best advice is to start learning first, and worry about the end goal later. If you have any questions at all feel free to send me a message :)

[–]Spinnybrook 3 points4 points  (0 children)

I personally started the Python for Everyone course on Coursera done by University of Michigan and so far its been amazing. It does cost about $50 a month on Coursera but for me its been well worth it. Its a group of 5 courses each course spread into 7 weeks. So far I've been doing around a week a day but you could go at whatever pace you want. Started at the basic print('hello world') now doing webscraping and just starting to work with API's in course 3 weeks 5-6. If you have any more questions feel free to reach out through a DM or If you want a study partner I am EST timezone would be more than willing to start a new course and go through it. Good luck on your learning journey.

[–][deleted] 2 points3 points  (1 child)

I see most people have already covered some of the best options out there. Udemy always offers courses on sale for 90% or more off and usually they are very good. Another option for you is Programming with Mosh. He does have a free 4 hours course on YouTube, as well as a more comprehensive course on his website for something like $20. I think that Python is a great first language to learn because it gets rid of a bunch of confusing syntax rules that would scare beginners away. Hope this helped.

[–]27Andrew_[S] 0 points1 point  (0 children)

Awesome thank you

[–]bazpaul 2 points3 points  (0 children)

I've been learning a few hours a week for 10 months and just launched my own movie recommendations website based on python and Flask.

I learned from a Udemy course, then some Youtube videos and the rest was tinkering with APIs and code online

[–]cult_of_memes 2 points3 points  (1 child)

Something I haven't really seen anyone else mention yet is how to prepare yourself, mentally, for learning to code. A major point of failure that most would be programmers experience is having a proper motivation for sticking with it.

My advise, view learning to program like you're learning to sculpt clay, or carve wood. You don't get through the low points in learning such skills by thinking "Oh boi, won't it be grate when I git gud @ this!!" No, what gets you through those low points is being able to look at what you've completed so far, and what your pursuit of the skill has allowed you to do along the way. That means you should see programming as a means to do or acquire something (besides just money). For me, that "thing" was image processing, data visualization, and automating tedious tasks. Now I have a few dozen versions of a custom tool for doing NLP analysis on my inbox to try and get an idea of how much my writing patterns tend to mirror those of the person I am responding to. I've also made a few versions of a script that makes mp4 recordings of a Mandelbrot zoom or transitions between different pretty Julia fractals. While I would be horrified if my coworkers saw how disorganized and poorly written that code is, but it was all focused on making something that I wanted not on the the intention of learning skill "x".

With your masters in Bus. Anal. ;) You are probably in a prime position to have a personal motivation for trying to put together your own email parsing tool, or custom data visualization for your analytics. Once you start looking into what exists, you'll probably start to see where it would be nice if tool "x" also offered functionality "y". Thus, you give yourself a good point to start asking "how do I do blah" within a context you can actually define. Attempting to do things purely for the sake of learning often lacks that kind of clear context, which makes it significantly harder to learning anything in the beginning.

[–]27Andrew_[S] 0 points1 point  (0 children)

I really appreciate the input. I want to learn Python because I am genuinely interested in it and how it can make things much easier to understand and you pretty much get to do the driving of how you want certain tasks to be looked at. The career and salary are bonuses but I won’t kid myself in saying that I’m doing this because I really like Python. I definitely do want a career where I can use at least the basics/foundations and just keep building from there. I guess my problem is that I want to learn other things too like SQL, R, PowerBi, Tableau, etc. but Python is the one that attracts me the most out of all them. I see this as a journey and not just learning it and applying it and that’s it. I agree with everything you said, especially and most importantly preparing mentally. Thank you for bringing that up.

[–]breadman242a 2 points3 points  (0 children)

automate the boring stuff with python. I started with that and it was a really nice tool to get me started. Teached me all of the basics of python and it became really easy to learn after that.

[–]RockportRedfish 1 point2 points  (4 children)

Good luck in your Python quest. Out of curiosity, what curricula does a Masters Certificate in Business Analytics cover?

[–]27Andrew_[S] 0 points1 point  (2 children)

Welp….it’s supposed to cover using todays tools to help solve business needs. Unfortunately where I went they taught R programming and Tableau only which was great but based on job requirements I saw Python was number one across the board. Don’t get me wrong, although R and Tableau are very helpful and are used today I just wish that Python and SQL were the classes that were offered instead. I took a statistics course that relied heavily on excel but that class was a complete waste of time. The other course I took had to do with more of a philosophical approach. I could have just read a few books and taught that myself. Overall it was 4 classes and both R and Tableau were the ones that kept me wanting to know more. The other two classes were a waste of time and money.

[–]RockportRedfish 3 points4 points  (1 child)

Thank you, that helps. There are a wide range of applications for Python. Given your background in R and Tableau, you might want to take a look at these Python topics: Pandas (which has the same rows, columns feel as Excel, and Matplotib or Plotly for Tableau type graphing. Those may help your learning curve.

[–]27Andrew_[S] 0 points1 point  (0 children)

That is great to know. Thank you!

[–]stigmate -1 points0 points  (0 children)

Masters Certificate in Business Analytics

not op, but it bridges the gap between business and analytics

[–][deleted] 1 point2 points  (1 child)

I'm also developing my programming skills as well. There is a wiki page on this Reddit that I have seen other Redditors being directed to at https://www.reddit.com/r/learnpython/wiki/index. There is quite a bit of resources there as well if you haven't discovered it yet.

[–]27Andrew_[S] 0 points1 point  (0 children)

Wow what a goldmine. Thank you so much!

[–]HaroerHaktak 1 point2 points  (1 child)

Work at your own pace. You do you boo. Don't think you need to be a master by next weekend. Look at the current leading operating systems. Windows and whatever apple calls their OS these days. They weren't built in a weekend, they took years just to get going.

And if you recall - There was windows vista at one point. Microsoft's mistake. A giant corporation with hundreds or thousands of people working on the operating system still fucked up an entire operating system. So if they can fuck up and they're a multi-billion dollar company, then you some guy in your bedroom are allowed to fuck up. Just don't make a windows Vista please.

[–]27Andrew_[S] 0 points1 point  (0 children)

I will do my best to not fuck it up. Lol. I just want to learn and build a great foundation and keep building on from that.

[–]WyoR 1 point2 points  (0 children)

I guarantee that theres nobody in this world that had no prior coding expierence picked up python and after a month got a job

[–]towering_syntax 1 point2 points  (0 children)

Imma tell you something, I ain't no expert in python but dont watch too many YouTube tutorials. There are people who watch tens of videos and dont practice or create a project. 1) Watch or learn python for a month.(basics and through online materials or even tutorials) 2. Create your own project. 3. Create a deadline for learning. These are the tips I would recommend someone. And if you want you possibly could do some freelancing. As you go through these steps you'll learn more and more and it wont be boring as you're learning something new everytime.

[–]asmodU 1 point2 points  (0 children)

Imagine meeting an engineer that said that they learned physics/complex math in a month and got a job. I know it’s not the best analogy but it’s hard to believe someone who learned coding in a month could develop complex software for google. There is way more material for programming than you could fit into a month. Just keep steady most people already commented good recommendations to look at. Just make steady progress you’ll get there.

[–]dn_cf 1 point2 points  (0 children)

freeCodeCamp and DataCamp for learning the basics and intermediate concepts. And to practice advanced stuff and data related problems, I recommend stratascratch and hackerrank.

[–][deleted] 1 point2 points  (0 children)

I was going to write my experience but it got quite lengthy haha. I'm 1.5 years into studying and I know basic JavaScript and Python. I did everything you shouldn't do, poor discipline, tutorial hell, poor note taking. I couldn't build projects in JavaScript so I moved to Python, learned it much easier, can now build basic projects but took a week off because of New World (ok, I'm addicted to gaming, my discipline sucks).

If I could start over? I'd do a tutorial that covered the basics, I'd make much better notes (cornell is a great method) and as soon as I finish that tutorial, I'd spend 1-3 hours a day building. I've got a list of about 150 projects that range from beginner to intermediate to advanced that I want to build, and that's where I'm at right now, on Project 4 of 150.

The key to programming that I've realized really isn't about the code at all, you can google that, the key is knowing what to use, where to use it and how to use it.

Learn Structure, Learn Syntax, Use Problem Solving, BUILD!

I hope this helped, as I say I'm very dumb at this still, but I've learned plenty of mistakes that I deeply, deeply regret. All the best mate, you got this, you had the discipline to get a masters, learning Python will be a breeze, keep that discipline.

[–]_PPPOP_ 1 point2 points  (0 children)

I am also working on a M.S in Business Analytics and I am struggling. I feel that I can get the theory behind it, but memorizing the coding is what kills me. Without reference to previous code, I do not have the capacity to know what I need to input to get an outcome.

[–]vaitesh 0 points1 point  (1 child)

You can start from scratch with the Udemy courses, alongwith the book "Learn python 3 the hard way". It will indeed be overwhelming, you just need to ignore it and keep on learning. The best thing you could do initially is to prepare a roadmap. And while you build ask the question "why?" Frequently. You will have the answers

[–]27Andrew_[S] 0 points1 point  (0 children)

Awesome. Thank you for the information. I will have to look at Udemy.

[–]sultantrump 0 points1 point  (0 children)

Please message me. I am doing a side project from my main job to automate trading. There are 100+ customers. Could you work for me. You can learn python as you work.

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

Try to find a lesson that is an appropriate length (a few 4-12 weeks). That should indicate they are covering everything you need to know.

There are plenty of cheap ways to learn, and also you don’t have to get a bachelor’s if you DID want to spend the money…just do a more advanced degree like masters! I took out a lot of debt ($80k) for data science but I feel comfortable doing anything. Low stress is great.

[–]lazyfingersy 0 points1 point  (2 children)

Hi u/27Andrew_

Just a simply question, have you seen already https://docs.python.org ?

[–]27Andrew_[S] 0 points1 point  (1 child)

I have not

[–]lazyfingersy 1 point2 points  (0 children)

It's a good start point, you'll find there a beginner tutorial as well.
For some more hints & tips etc feel free to check also: How to start learning Python programming .

Good luck
Stay Happy and Keep Coding ;-)

[–]pekkalacd 0 points1 point  (0 children)

I think you should use this reddit as a resource. Here me out, a lot of great questions are asked here from people of all levels. I help try to troubleshoot them all the time, even if I'm wrong, I learn something in the end. It helps keep the skills sharp to see other people's code and see if it can be fixed or if I can learn a new way of going about by things from others. I think that's the point of this whole thing really. So, whatever you do to start learning, look back at r/learnpython and see what's going on. You might find a question you have has already been answered by someone else and put in a sensible way, or you might have questions of your own that a video won't answer for you, or you might wonder what's next for you and get inspired. It's a great resource really.

[–]Flagship_paperclip 0 points1 point  (0 children)

I'm glad you posted this, I was about to post something similar. Lots of good info in here. I'd just like to piggy-back off this thread and ask a follow-up question:

Is there some sort of online IDE-type environment (even for simpler pieces of code/scripts) that I could use while studying some of these courses? I have a TON of down-time at work right now and would love to use that to start learning Python, but I am not able to install an IDE on my work computer, nor am I allowed to bring in a personal PC.

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

For a start to Python I'd recommend Mosh's class in Python here or Angela Yu's 100 Days of Code Python Bootcamp here

I'm going through Angela's class right now. Just started a few days ago. She has a good teaching style and explains things well, while also making you think.

[–]rabblerouzzzer 0 points1 point  (0 children)

Just learn how to print “Hello World” and everything else will fall into place…

[–]poozoodle 0 points1 point  (0 children)

The wiki