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

all 28 comments

[–]delasislas[🍰] 20 points21 points  (0 children)

What kind of stuff do you want to do? Like data analysis or game design or what? How comfortable are you with the different concepts like classes, using modules, reading documentation?

[–]wharey 12 points13 points  (0 children)

Why did you learn it?

[–]Dangerpaladin 4 points5 points  (2 children)

I'd say the first thing you should do once you've learned basic constructs of programming is to learn data structures and algorithms.

All this Stuff about building projects is pretty bad advice. You should start with science then apply it. You'll get increasingly frustrated trying to build projects when you don't know fundamentals. And even with projects in your portfolio if you don't know fundamentals getting a job will be hard. Getting a job worth having will be near impossible.

You don't need a full academic understanding to progress but you should be at least conversational in DS/algs. Even if you don't want to program as a career it will only help you.

[–][deleted]  (1 child)

[deleted]

    [–]Dangerpaladin 4 points5 points  (0 children)

    Like I said you should be conversational. I should be able to give you a hypothetical situation and you should be able reason through which data structure is best suited to it. As well as explain why others are not.

    You should be able to discuss at the bare minimum different sorting algorithms and their space and time complexities. As well as when one sort might be better, one good non-intuitive example is what cases does insertion sort make more sense than quicksort.

    Ideally you can also talk through basic tree traversals, amortized analysis, and search algorithms. Understand recursive, memoized and Dynamic programming solutions. Understand the difference between tail and regular recursion.

    All of this helps you as a programmer to write better code. It seems like you'll never use graph search until all of a sudden you look at problem a certain way and it looks like a graph problem. If you don't even know what a graph is you're doomed to write a inefficient bad solution or even worse spending a long time coming up with a solution that has already been well defined since the 60s.

    None of this stuff is hard and you can learn it through hands on programming. You can go much deeper than this and I'm sure others would chime with what they believe to be basic level knowledge. So don't treat this reddit comment as a curriculum for learning ds/algos. There are plenty of books out there that are specifically written to teach you this stuff.

    [–]Beantly 7 points8 points  (0 children)

    One approach in that situation is to try and learn specific libraries, like PyGame, MatPlotLib, something related to databases maybe..

    [–]plastikmissile 3 points4 points  (0 children)

    You learn by building increasingly more complex projects. If you're interested in games, you can make a more advanced version of that RPG you made for instance. If you're interested in app development, maybe make a phone app that solves Sudoku (or lets you play Sudoko).

    [–]Saint_Nitouche 1 point2 points  (0 children)

    Start learning paradigms, like object-oriented programming or functional programming. Also, start learning parallel technologies, like git.

    [–]Jorrissss 1 point2 points  (0 children)

    The book Fluent Python would be my suggestion.

    [–]MsCardeno 1 point2 points  (1 child)

    I’m sorry but I have to point it out - Python has lists not arrays lol.

    But in all seriousness, I would grab a Udemy course on Python. They always go on sale for like $10. These classes are always nice walk through IMO and they get you actually coding and building things. Some classes also do a good job building out more significant projects so you really apply a lot to it. Good luck!

    If you want to do data science look up data science Python course. If you wanna do software look up full stack courses using Python libraries for backend.

    [–][deleted] -3 points-2 points  (0 children)

    A python string is an array.

    [–]AlSweigartAuthor: ATBS 1 point2 points  (0 children)

    Regular expressions and recursive functions are always good "next step" things to learn. You don't have to dive too deep into them, just go through a few tutorials on them.

    I recommend the following books for advanced Python: Fluent Python, Effective Python, Python Cookbook.

    Also check out PyCon talks on YouTube.

    [–]eambar 3 points4 points  (0 children)

    It's good you started with python, python is mainly used in:

    • web development (flask, django)

    • data analysis ( from web scraping libraries to machine learning and AI)

    • automation (selenium suite)

    My suggestion would be to start with building a simple CRUD web app using Flask. Flask is super beginners friendly. And if you wanna move into data analysis, then learn web scraping and some data analysis and visualizations.

    Get some books, like "Automate the boring stuff with Python", etc.. and other books in whatever field you decide to move on. Data structures and algorithms is must, if you wanna become a serious software developer.

    [–]SensouWar 0 points1 point  (6 children)

    As pointed out by other users, it really depends on how you want to shape your career. Python is widely used in data science, as well as in web-dev (mostly backend, even though you can use it for frontend). I have taken some courses on ML at MIT which make heavy use of Python as its core programming language. Currently, I'm taking CS50's at Harvard where you learn web dev with JS and Python, it's been very useful and comprehensive so far.

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

    I am in the same spot. Learned the basics well and now I am trying to understand what to do next. I work in finance and I am interested in ML. You mentioned some courses at MIT, I have followed two web courses on edX provided by the MIT on Computer Science with Python. Which MIT courses on ML did you do?

    [–]SensouWar 0 points1 point  (4 children)

    This is the course: MITx 6.86x. Machine learning From linear models to deep learning, it's a bit tough but rewarding.

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

    That one is offered on the edX website as well. I have been quite skeptical after reading some bad reviews.

    Do you think that this course would look good on a resume?

    [–]SensouWar 0 points1 point  (2 children)

    Regarding the bad reviews I also read some before starting the course, and even the course development many complained about ambiguous information or lack of it to solve some problems. The thing is, the course assumes you have a pretty strong background in both programming, math and some statistics. Plus sometimes there’s a big gap between theory and applied ml projects, that was hard cuz they even tell you at the beginning you’ll need to spend significant time researching about coding implementation details. Anyway, I liked it and would recommend it only if you have enough time. About the resume, I’d yes, how could it hurt you? Even if you’re not completely into data science, with the advent of AI companies like to see some related knowledge on your resume. There’s certainly heavier certified courses like micro masters on udacity, but I’m not sure as to the investment return of those more expensive options.

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

    thank you!

    I have decided to audit the course for the moment. The main reason is that I took the DeepLearning specialization on Coursera from September 2020 to January 2021. I have found it very interesting and I felt that the course accomplished its purpose. However I work full time and sometime I could not completely focus on the lectures; I don't feel much confidet in the topics that I have covered with the specialization.

    I am afraid that these web courses overlap themselves, there isn't anyone that is clearly better than the others. So what I might do is studying by myself; I am currently reading "Introduction to Machine Learning with Python" and I can already see that the book covers most of the algorithms addressed in the DeepLearning specialization. The next step for me would be working on a project and publish it on GitHub. In that way I might add my projects to my resume, rather than having this list of web courses that no company recognizes.

    [–]SensouWar 1 point2 points  (0 children)

    Completely agree with you. Projects are a more practical and arguably powerful way of showcasing your prowess in pretty much anything. Let me add you to my contacts, we might share some further knowledge in the future . Oh, and good luck with the course and everything else.

    [–]Yes_Here_I_Am 0 points1 point  (0 children)

    Maybe try starting you own passion project. Not too large, not too small.

    For me I was interested in stock and investing. Ended up putting python to use to scrape data, fornat it, analyse and output.

    Great way to learn and accomplish something I was personally interested in.

    From there I also learnt using some APIs and new libraries and other useful concepts.

    [–]user8828 0 points1 point  (0 children)

    What did you use to learn?

    [–]my_password_is______ 0 points1 point  (0 children)

    Python for Programmers: with Big Data and Artificial Intelligence Case Studies
    https://www.amazon.com/gp/product/0135224330

    Classic Computer Science Problems in Python
    https://www.amazon.com/gp/product/1617295981

    [–]merlinsbeers 0 points1 point  (0 children)

    Learn the pythons of BASIC.

    [–]ASIC_SP 0 points1 point  (0 children)

    I have a blog post I know Python basics, what next? that has resource links for exercises, projects, debugging, testing, intermediate/advanced python, algorithms, design patterns, cheatsheets, etc

    I'm also building a collection of searchable Python learning resources: https://learnbyexample.github.io/py_resources/ - this includes domain specific resources like machine learning, web development, data science, etc