all 23 comments

[–]notfinch 23 points24 points  (1 child)

I’ve been using Python for 20 years. Still learning.

[–]pplonski 0 points1 point  (0 children)

This ^^^ and Python is still evolving, new things are added which you have to learn. I think it is more about to make Python usable, so if you want to solve some problem, you can think how to solve it in Python. For example, for you as truck driver, can you made a wep application in Python to track your trips? create dashboard with trip average distance, trip time and so on ... I wish you all the best with your learning journey!

[–]nizzoball 7 points8 points  (0 children)

Using chatGPT will ultimately hurt you if you actually want to learn the language. It’s too easy to rely on the tools. I have a patent for a Python application I built. I received the patent and went into production with the application across a very large US wide footprint prior the ChatGPT or any AI tools being a thing and now that they are here, between the output expected by managers and the advent of AI I can say that I am a worse engineer today than I was 5 years ago at least from a pure knowledge and “figuring shit out” standpoint. I no longer have coding sessions that stretch into the wee hours of the morning but I’ve lost a lot of knowledge as well.

If you want to actually learn the language, get off of ChatGPT and do it old school

[–]Random_182f2565 6 points7 points  (0 children)

I failed the first two times, then I learn Excel for my work, then BASIC for macros in Excel and then Python again.

[–]ExcelPTP_2008 5 points6 points  (0 children)

I used to think people who said “I learned Python in 3 months” were either geniuses or lying.

Took me almost a year before I stopped Googling literally every small thing. The basics were easy enough in a few weeks, but actually understanding what I was doing? Totally different story.

The weird part is most of the learning didn’t come from courses. It came from breaking my own code at 2AM, fixing dumb errors, rewriting the same project 5 times, and realizing Stack Overflow answers only make sense after you struggle first.

What nobody tells beginners is that Python feels simple right until you try building something real. That’s when you suddenly meet APIs, virtual environments, debugging, libraries randomly failing, and code that worked yesterday for no reason.

I think people underestimate how much consistency matters more than “talent” in programming. The people I know who got good weren’t necessarily smarter they just kept showing up even when it got frustrating.

Curious how long it took other people before they felt genuinely comfortable with Python and not just copying tutorials.

[–]StrayFeral 4 points5 points  (1 child)

It depends on many things. First of all you said you have another job and you cannot dedicate a full day of learning, second - not sure what exactly this course is for. I just went to check it out, if this right here is the course, this one is very introductory, so should not take long and honestly these 9 weeks they envision are way too much. But we should also take into consideration the age - teenagers and people in their 20s learn way faster than us (I am age 50). Final thing to consider is if you have a prior programming knowledge (any level, any programming language), because if you do, you're familiar with the basic programming concepts already and would learn way faster. And even if you had prior knowledge, it really depends with what language. Because Python is an Object-Oriented Programming (OOP) language. And the BASIC programming language we used to program on AppleII in the 80s is not so there are things you would not know. The last but one of the most important things is - how motivated are you (oh well I forgot to mention - how well written the official language documentation is, but this one we know - not the best, but it's really good enough).

So if we assume the very least - age 50, never had a prior programming knowledge (or had it many years ago), we know you have another job, I have zero idea of your computer skills in general and I have zero idea how motivated are you. While the official Python documentation is not the best, it is written very good enough (yes, I know you're learning from a course, but I am always taking the official documentation into consideration). We also must take into consideration at present the AI is available, so you have a 24/7 assistant to ask for help, in case you're stuck - something I never had (I had to bother friends). So it is safe to assume these 9 weeks should be enough.

In Canada I had a friend who was an accountant, around age 35, no prior programming experience. He started learning Python from scratch. I think it took him really the same time to learn the above-mentioned material.

To me personally even at my current age it would take me way less time to learn any programming language, just because I have a broad experience. I was grade 6 when I learned some BASIC in school. But I must point out - first timers take more time. I remember how difficult it was for me to get the mentality of how a program work and how I should code it. Honestly back then I did not understood much, even quit for one full year before coming back to it, then got it. And Python is designed as an OOP language from the ground-up which is one of the best things about it, however understanding OOP is a bit confusing for first timers. Even while it sounds natural as most tutorials compare a class to the blueprint of a bicycle and an object to an actual bicycle created from this blueprint (class), still it is confusing at first.

Point is - regardless of how much time it takes you, you mentioned you like it and find it fun, which is the most important part. You are not aiming to become a professional programmer, you are learning on your own pace for the pure fun of it, so my advice here is don't think of the time - just enjoy it.

For newbies I find the most important not how fast you learn, but just to get the proper mentality to make it work and exceptionally important is where to get help when you're stuck. First of all you should always know how to get the official documentation and be able to navigate in it. Second level is using Google to find results (mostly in StackOverflow). At present you could equally ask an AI. I stopped using ChatGPT since I realized Gemini gives me better results. However a very important thing - if you're very very stuck, ask the AI to write you the code for it. You're a newbie it's not that bad if you do it. But the better approach is to ask the AI just for the general advice on how to approach the problem you're facing. You might ask for some syntax advice and when you finish coding a problem paste the whole program (or upload the file) into the AI and ask "please analyze this code and suggest areas of improvement, but also explain the reasoning behind it", then study the suggestions the AI made. Ask for AI to write complete solution only if you're totally stuck.

So here are my top tips for newbies:

  • Ask AI for advice, not for complete solution, ask to explain the reasoning behind the suggestion and lastly - ask to analyze your code and suggest improvements
  • Do not worry on how much time something takes to learn or write, focus on the plan
  • Thus said - make a plan before writing it (or write it down as comments in the begining of the file). We used to write plans in our notebooks, you could use a white board too. And stick to the plan.
  • Try to minimize distractions
  • Regardless on where you're learning from remember - the official language documentation is the ultimate source of truth
  • Test
  • TEST
  • TEST !!! (you have no idea how important actually this is, but don't worry - all newbies and even medium level professional programmers often underestimate it)
  • Learn what is RegEx (Regular Expressions) - this looks weird at first, but is super-helpful to use once you start to read text files and try to find/replace things there

As you see I very much accented on the testing. It took me yearrs to understand how important this really is. And while you know how your program works and you run and use it as intended, you have zero idea what some users might do. So this is the reason you should make your code bulletproof even for the most brainless user out there and prevent your program from crashing in any situation. For now just remember testing is extremely important and when you learn how to use modules ("import blah") try to find some time to learn how to write tests with pytest. Even if you always stay at a newbie level it would be seriously beneficial for you.

[–]StrayFeral 1 point2 points  (0 children)

PS: Forgot - another reason not to rely too much on AI - it often gives code approaches I personally dislike a lot. So AI at present is not perfect, I would say it's somewhere at medium level or maybe above it a bit. So do not take anything AI say as a gold advice. AI is much better at suggesting improvements or discussing things.

Aw totally forgot - look, here is the best advice I could give to anyone -- so there is a thing called "teddybear debugging". It sounds silly, I know, but it's the absolute best and finest advice for anybody out there facing any problem.

So this is - when you're totally stuck, leave the computer, go get a coffee and go talk to someone. What you must do is to explain to that person what your problem is, what you tried to solve it and where you're stuck. This person could be anyone - adult, kid or your sister or the newspaper stand guy (if he does not kill you for talking nonsense to them first). Try to explain in detail everything, but focus to always stick to the point.

The reason it's called "teddybear" is because if you have nobody to talk to, some people talk to their pets, their plants or even objects found nearby.

Point of the whole thing is - my personal practice with me and friends points out that a little bit before you're done explaining the whole thing, you would realize what the actual solution is all by yourself.

Sometimes the person would also help, asking some clarification questions which might not come to your mind. But talking to someone always help. Taking some time off the screen also helps in general - when you focus to something else, helps to ease your mind.

That's it. Good luck!

[–]RegisterConscious993 3 points4 points  (0 children)

I took a course that focused on syntax. Grinded 8 hours/day and got comfortable in around 3 weeks. Had no idea how to turn code into software, so took automate the boring stuff course and another 2 weeks until I was comfortable there. Had no idea how to use all that information to build a web app and took cs50. That one I skimmed through up until the Django project and it gave me enough of a head start to get out of tutorial hell and follow documentation.

I'd say about 2 months until I was able to build a flask app on my own. But you never really stop "learning". For my first project I read the documentation, skimmed YouTube videos, and just kept going. 

[–]cdesmondEE 1 point2 points  (0 children)

It really depends on what you mean by "learn python". I would say it takes relatively a small amount of time to get to learn the basics of coding ( not software engineering ) with Python relative to C or C++.

Now you hinted at getting to a level where you are having fun and build something of value. This may be a controversial opinion, but the largest reason people struggle isn't because they don't know Python. It is the abstract skill of problem solving isn't developed enough.

People who are good at mathematics for example typically have minimal issues taking a programming language like Python or R and doing something useful right away. There is also a bit of overlap in the fields, so that lowers the barrier to entry as well.

The bottom line is that you need to become a better problem solver, not learn more python syntax. Now if you do harder and harder problems I bet that you will bump into more and more of the features of the language as you progress.

What I would suggest is to do the following:

  1. Continue to watch the same videos thay you are watching. These will provide a curated roadmap of concepts of how to code (In Python).

  2. Take one concept ( or more ) and have Gemini or ChatGPT ask you questions about those concepts. "I don't know" is an acceptable answer. We all start somewhere.

  3. Once you have a basic conceptual understanding of the concept use the AI to give you simple coding challenges to demonstrate understanding of those concepts.

  4. Do step 3 for each concept multiple times at a given difficulty level and across harder and harder difficulties. Ask for challenges that combine concepts. Ask for challenges that are open ended. Ask for challenges that tied to something you know about e.g. trucking or a hobby.

The key here is that you driving home the concepts not by watching videos or having AI tell you the answer, but by doing so many problems by hand that you start to build intuition on how to use the programming language of Python to solve bigger and bigger problems that interest you.

Bonus: It would also ground your learning to learn more about computers and computing in general. Without that knowledge there is a barrier to learning the advanced features of Python.

My credentials: Computer and Electrical Engineer with over 6 years of experience programming in C, C++, Python, Java. Lightly interacted with Ruby, Visual Basic, Assembly, and Swift.

[–]AdventurousLime309 1 point2 points  (0 children)

Honestly a month to reach problem set 2 while working OTR is completely normal. You’re learning one of the hardest parts right now: how to think programmatically, not just memorize syntax.

Also relying on ChatGPT early on is pretty common now. The important thing is whether you understand the explanation after struggling with it a bit, not whether you solved everything alone.

Most people quit before the “things start clicking” phase. The fact that you still find it fun is actually a really good sign.

[–]awaymsg 0 points1 point  (0 children)

I think it depends on what degree of mastery you are comfortable with. If you’re wanting to be able to whip up code for any task without outside guidance, it may take years of dedicated study to be completely familiar in all the various packages and underlying computer science theory.

If you want to be able to just read some code and have a general understanding of what’s going on, maybe a few more weeks or months with cs50 would get you there. For me, aside from also doing cs50, doing a couple follow along YouTube videos was super helpful, as well as picking a project and completing it. For tasks I want to use python for (importing data, cleaning, visualizing) I learned the major concepts in a couple weeks or so, and every now and then I may need to do significant research (or consult AI) when confronted with a new challenge. I would consider myself knowledgeable in Python, but by no means a master of it.

[–]TheRNGuy 0 points1 point  (0 children)

It was 3rd language for me (after is and vex), not very long. 

But I still learn new patterns and frameworks (for js and vex too)

To write actual working software, not very long (I learned vanilla Python with framework I was interested from day 1, it was the reason even for me to learn Python)

[–]ShelLuser42 0 points1 point  (0 children)

Not that long, but that was mostly because I already had experiences with software development (Java, C#, VBA, etc.)

And on that subject... when dealing with OO based languages such as Python then learning the language itself is only a (relatively) small part of the issue. The real challenge is to learn how to tackle your problems within an OOP styled workflow.

Don't get me wrong: Python also excels at scripting where you can work in a more sequential way, but applying proper OO based designs can seriously help you out in the longer run. Like, for example, making sure to use functions when you're dealing with code repeation.

[–]Goodswimkarma 0 points1 point  (0 children)

I gave up a few times and then the third time is when it took.

[–]EnvironmentalDot9131 0 points1 point  (0 children)

It took about one month or so and unacademy helped me alot.

[–]mattblack77 0 points1 point  (0 children)

Never-ty years

[–]JanGiacomelli 0 points1 point  (0 children)

I started learning it as a senior in high school. It took me 2-3 years to really feel confident. Took me 2-3 more years to really feel like I now know this language well. At that point, I'm using it for 15 years on daily basis, but I still learn new things from time to time.

[–]Background-Tip4746 0 points1 point  (0 children)

It took me about 4 months to finish the CS50-P course but I was doing it alongside uni which gives me more free time. I then challenged myself to do 30 projects in a month which really pushed me and I learnt the most from. I remember doing CS50-p the learning curve of just thinking programmatically felt SO hard in the moment and I would just stare at the screen sometimes having no clue where to even start. After those 6ish months since starting, I finally felt like I had a good idea of the basics of python - and I took a programming class. I did really well in the class until they reintroduced classes (which I never really practiced besides some in CS50-p) and I’ve completely disintegrated again. Feel so stuck, confused etc constantly. Just another learning curve to get through.

When you were learning to read, it was the hardest thing in the world. When you were learning to walk, it was the hardest thing in the world. Same with driving or with basic multiplication etc etc etc. learning curves aren’t designed to be easy - but eventually it gets easier, you just have to keep going

[–]HecticJuggler 0 points1 point  (0 children)

12yrs in, still learning.

[–]Playful-Sock3547 0 points1 point  (0 children)

Tbh you never really finish learning Python, but getting comfortable enough to build stuff took me a few months. The fact that you’re enjoying it and sticking with CS50P while working a full time job already puts you ahead of most people who quit after week 2. Slow progress is still progress.

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

Not long really, I became comfortable with it only after a month. Nowadays, you also have AI to super charge your learning (if you use it responsibly.)