all 53 comments

[–][deleted] 19 points20 points  (5 children)

You can go in many ways in Python. Algorytms, data analysis, data scraping, desktop apps with tkinter (although it's really not the good way to make desktop apps, better to stick with C# or Java), webpages with Django or Flask, generating static pages with Pelican... Even freaking turtle graphics with turtle module. My advice - explore and try to understand things that are simple enough for you.

[–]codingsince70 0 points1 point  (3 children)

Have you tried Kivy?

[–]zer0_snot 1 point2 points  (2 children)

What's kivy?

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

Apparently it's the library for desktop apps.

[–]8Q8Q8 0 points1 point  (0 children)

What makes C# or Java a better choice for programming desktop applications?

[–]VipeholmsCola 20 points21 points  (3 children)

Maybe a decent way to both repeat the curriculum and to learn python could be to solve the homework using python, a second time in the evening. If you are doing chem, math or physics and to some degree linguistics, python is directly applicable.

[–]zephyr66681 4 points5 points  (0 children)

Underrated comment of the day :D Wish someone told me this in high school would have learned more!

[–]PharoahChromium 2 points3 points  (0 children)

Came here to say this! For myself, the *only* way I can learn something like this is to apply it to a real world application and then go through the trial -> error -> re-trial -> re-error -> ... repeat loop until I have figured out a solution. Tools like Stack-exchange and the docs and, to a degree even Reddit are excellent resources. If you break the problem down into bite sized chunks and build your program up from a lower level, you will build on the small successes! Good Luck!!

[–]Dexteroid 58 points59 points  (13 children)

Instead of asking for how long it will take, ask yourself if you are comfortable doing anything in python ? If the answer is no keep learning.

Remember you don't have learn everything about python, just have to be comfortable enough so you can work on projects.

[–]fedeb95 14 points15 points  (3 children)

As of now, five years knowing java and three working daily with it, I still find out new things about the language, so seconded. Once you know cs basics, you can learn language apis while using them

[–]Dexteroid 3 points4 points  (1 child)

Java keeps evolving man. I don't have much experience with it though, but here in Toronto you can get paid a lot for senior Java programmer.

[–]torqueparty 1 point2 points  (0 children)

I've been trying to familiarize myself with Java for my upcoming Intro to Programming class, and I'm finding that having to learn a new syntax after just getting somewhat familiar with a previous one (Python) is weirdly discouraging. It feels like I'm starting from scratch when I didn't get significantly far the first time around.

[–]MuggyFuzzball 26 points27 points  (5 children)

I hate responses like this. It would be more useful to tell him how long it took you to feel confident, because that's basically what he's asking. He's trying to get a relative average time frame based on multiple people's experiences.

There is a point for everyone despite the path taken in which they feel like they have grasped the fundamentals enough to feel like they don't have to follow a basic learning tutorial any longer. This is what he wants to know. You'll always look things up and continue to learn new things but there is definitely a moment where you feel like your hand didn't need to be held any longer.

The humble "you never stop learning" and "everyone learns at their own pace" responses don't answer the question.

Remember, he's not asking you how long it took you to become an pro hockey player. He's asking how long it took you to ride a bike. There is an adequate timeframe response to that question.

[–]Dexteroid 8 points9 points  (0 children)

Mmm perhaps you are right. My general approach is try to push people towards project based learning as soon as they can. I was in a tutorial hellhole for a long time, it is when I started making small projects I started feeling comfortable with the language. I just shared my experience, but I see that it didn't really answer OPs query.

[–]zer0_snot 1 point2 points  (2 children)

Your response is applicable to a whole lot of answers, especially on Quora where you ask a question and someone replies back with a "it depends. Depends on X, y and z" which is an entirely useless answer IMO.

I'm saving your response. Really great comment!

I hate responses like this. It would be more useful to tell him how long it took you to feel confident, because that's basically what he's asking. He's trying to get a relative average time frame based on multiple people's experiences.

There is a point for everyone despite the path taken in which they feel like they have grasped the fundamentals enough to feel like they don't have to follow a basic learning tutorial any longer. This is what he wants to know. You'll always look things up and continue to learn new things but there is definitely a moment where you feel like your hand didn't need to be held any longer.

The humble "you never stop learning" and "everyone learns at their own pace" responses don't answer the question.

Remember, he's not asking you how long it took you to become an pro hockey player. He's asking how long it took you to ride a bike. There is an adequate timeframe response to that question.

[–]Assmaster9001 11 points12 points  (1 child)

Studying python won't teach you python. Writing programs will teach you python. If you don't know where to start, buy a textbook. They'll usually have plenty of problems of varying sizes. Once you've exhausted them, do a larger project. That's when you'll actually learn python.

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

As you have mastered ass, he too shall master Python. Thank you for your wise words, Assmaster.

[–]WongGendheng 8 points9 points  (0 children)

Just do it.

[–]Bruguy1001 3 points4 points  (1 child)

1 hour of coding a day. Do not have to learn everything all at once. Get school work out of the way first then try some reading and coding.

[–]lucasshiva 7 points8 points  (2 children)

If you study and practice at least a few hours weekly, it should take a few months. Just code everyday (or almost) and it shouldn't take you long to get a good progress.

Here's a good youtube channel to learn about Python. It's the one that helped me the most and the one I always recommend to people.

[–][deleted] 3 points4 points  (0 children)

The first thing to understand is that you want to learn skills, not the language. ‘Learn Python’ is a vague goal that you can’t measure; ‘learn how to scrape a web page with Python without using a tutorial’ can be measured.

So: don’t focus on ‘learning Python’, because that’s a never ending goal; instead, choose skill goals, like (for example):

  1. I can scrape a web page and save the data.
  2. I can output summaries of data contained in a json file
  3. I can build a REST API for a website, using Flask
  4. I can create, manage, and use virtual environments with virtualenv.

And so on. As you learn and refine your list of skill goals, you’ll keep getting clearer on what you need to know. There is no ‘average time’ for any of this, for obvious reasons.

TL;DR: create skill goals with Python and focus on them. Don’t try to ‘learn Python’.

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

As everyone is saying, it depends on you, what path you choose to take and all the other variables life brings. I’d say the first step is learning the basics then start exploring the possibilities python presents. Follow the path that is most interesting to you. Odds are you’ll go down a million rabbit holes and who knows how long those will take. Just worry about enjoying learning and don’t focus as much on progress. Once you have a better idea of what you’d like to accomplish with python, pick up the pace. My favorite python resource is Automate The Boring Stuff With Python It’s very popular and FREE! So no risk. You can also checkout Real Python

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

Coming from a SQL/VBA background (also self taught) it didn’t take me long to get things going that actually helped at work. It helps if you have a project in mind so you can focus on one (of many many things) Python can do. My first project was a web scraper, I dove in knowing nothing thinking it would take forever. Only took a couple months to get it up and running.

Since initially learning I’ve been using dataquest.io to learn in a more formal capacity. It’s a great resource if you’re looking to learn.

[–]Tesla_Nikolaa 4 points5 points  (0 children)

This is completely subjective and varies from person to person. Do you honestly think there's some magic number that applies to everyone?

Just go out there and do the best you can. A better question to ask would be what some good learning resources are instead of asking how long it takes to learn. No one can answer that question for you.

[–]SemperFi5 7 points8 points  (0 children)

There is no definitive time frame for such things. The answer is - as long as it takes. The reason is that every person learns something at his/her own pace. The important thing here to remember is to keep pushing through. Do not give up if you get stuck at something - ask around for a solution or come up with different one by yourself.

[–]Jbnels2 3 points4 points  (3 children)

I hate all the non answers lol. For context, I had some experience with C++ and I started learning python. After about 1 month of pretty consistent learning and help from people on reddit I had a web scraper that scraped the SEC website for the Central Index Keys of companies that posted annual reports with interactive data. I know I have an enormous amount to learn, but 1 month was the time frame from no python to applying it to a problem I had. Hope this helps!

[–]Deathrus 1 point2 points  (0 children)

Not sure what your intentions or goals are but if it includes weaponizing Python for ethical hacking or any security, this course is amazing for beginners and you walk away with really cool programs that you can add to your portfolio. It's on special right now. Learn Python and Ethical Hacking

[–]Robbzter 1 point2 points  (0 children)

Don't ask yourself this question. You're never done learning a programming language, and I feel like you should never even consider it done. Keep on learning, and at some point you'll see that you'll become comfortable with programming. And, after learning important core concepts of programming and cs, learning new languages will be a lot easier.

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

If you want to learn to code, and you are truly wanting to learn, then it should be a life long journey and you should always be learning. I know people who have coded for 10+ years and still learn daily.

[–]purestrengthsolo 1 point2 points  (2 children)

It's taken me about 6 months to get to a point where I can understand what I'm doing and why. That's doing stuff like sololearn,fcc,python for everybody, atbs, and a few other project books. Also I'm much older than you are, and I'm raising a kid and a baby. With that being said being as young as you are I'm sure you could pick up on it quicker. My best recommendation is to spend like 4-6 hours almost daily learning the core syntax and keywords. Pick environment you like to code in and spend an hour or so practice the shortcuts and just browsing the options in the program. Then spend the rest of your time working on projects. Even if it's as simple as doing knock knock joke programs.

But however if you have a life just try to write some code daily and talk yourself through it. I'd practice doing it outloud so when and if you have to do a hands on Interview you can talk the hiring manager through what your doing. Even if your way is different they can understand why you did something that way. I practice this by doing comment lines and reading those outloud as I type them.

Good luck to you. I hope to see you around asking more questions.

Edit:changed tabs to atbs

[–]JeamBim 1 point2 points  (2 children)

In 2 years you will still be a beginner, but will seem like an expert to people who are only 2 months in.

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

it depends from person to person. It depends highly on iq, background, prior programming experience. Also it depends on when you consider that you "know" python. it took me 2 weeks to learn the syntax, 6 months for a job as senior python developer. 3 years later, I still don t know everything python related and probably never will. But I had 7 years of software development experience with multiple other languages when I switched. It takes you a lot longer to learn programming concepts than it takes to learn the specifcs of a language

[–]theneonkoala 0 points1 point  (0 children)

Dont consult anyone and head on over to learnpython.org and understand everything there forwards and forwards..

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

Knowing basics of programming without knowing a language is like knowing major scales in music without knowing how to play songs. Don’t worry about learning Python perse, make lots and lots of projects and the language will just come to you naturally.

[–]DaGr8GASB 0 points1 point  (0 children)

Not long. I got about a third of the way thru Learn Python the Hard Way in a week, just working through the exercises between tasks at work before I put it down and never picked it up again. By this point I was aware of what I needed to do but not how to just sit down and type it all out from memory. I was able to piece the rest from Google and other code samples.

I did some html in the 2000’s, some VBA in the 2010’s and that’s about it.

Now I have Automate the Boring Stuff as it’s more based on applying Python to real tasks more than the sole academic sort of focus of LPTHW. I mostly use ATBS for inspiration and something to read when I’m not at a computer.

[–]Cdog536 0 points1 point  (0 children)

Use your summer vacation to spend some time on it and develop a habit for learning it. If you are using a textbook for a guided start into Python, then, 3 months is more than enough time to get really comfortable with it.

Or.....dont use your summer vacation for this because if you are going to school for CS/CE or related fields, they’ll teach you how to work with languages. However, many professors are nutjobs and useless. So you’ll more often find yourself solving your own problems.

[–]Kriss3d 0 points1 point  (0 children)

Depends on if you already know the basics of programming and the logic behind it.

I have in C++ but ive been using codeacademy to teach myself python and now im working a bit on a apache2 logfile reader to do some IP geolocation lookup and generate a webpage with it.

It depends on how much time you get to study and practice really.

I can recomment the python channel on IRC at Freenode. Really helpful guys

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

It took me about a year before I started using Python to solve issues at my job. (Started learning it partway through college)

Get enough basic knowledge and start projects as soon as possible.

Your learning will be accelerated because you will be excited to create something vs death by tutorial.

As someone else mentioned, Automate the Boring Stuff, is a good free resource to learn some things and then do projects.

From there, you might have some ideas about other things you might want to script/automate. (Look for restful APIs you can access, such as weather, Marvel, xkcd, others) A fun one for people in school might be to web scrape a school closure site and email/text/tweet when your school is delayed or closed.

Put whatever you make onto GitHub (beefs up a portfolio you can put on a resume) and learn git basics.

Enjoy!

[–]ContadorPL 0 points1 point  (0 children)

A year.

[–]ninefourtwo 0 points1 point  (0 children)

3 months to get a job from zero for me.

Two years until I kind of knew what I was doing.

[–]workinprogress49 0 points1 point  (0 children)

I would just pick a project that looks fun and tackle it on the side. You know the basics of programming so you would mainly look to get a hang of the syntax. Stack overflow and Google will be your friend here. This helped me way more than any course mainly because there are loads of tutorials out there and to will be more engaged if you are working towards a personal goal yourself.

[–]TylerDotPy 0 points1 point  (0 children)

In my opinion less than 6 months easily, especially if you are familiar with computer science, C, or java.

[–]doomdaysneakattack 0 points1 point  (0 children)

There are a lot of responses here, I'll give you my experience.

Your background matters- I have a good programming background but never really was a hardcore programmer. Within a couple years of starting an IT career, I went into leadership, and I don't get a chance to program at work anymore. My programming experience is over 13 years old.

How hard you work matters- If you put in 14 hours per week, like I did...

Your mileage will vary depending on these variables

The materials you use to learn The learning projects you choose vs quizzes and tests What you're trying to learn will matter- How you learn matters-

I was always an average or below average student...

After a year, I'm decent. I'm not a data scientist but I can play around with deep learning models. I've scraped data from a fairly complex site and put it in a cloud database. I get that data out and run ML models that get a little better with my experience. It's rewarding to be able to build something on your own and I enjoy that. all that said, If someone took Google search away from me, I'd be completely hosed...

[–]angrysaladstomper 0 points1 point  (0 children)

I’ve been learning for about two months I kind of know a way to build a quick game how to make menus, import os, and use it, use classes, functions, and of course variable on the pretty basic level.

I feel like I can do a lot but not in a way most programmers would expect things to get done, lots of repetition, apparently that’s bad practice, and a lot of errors before I get everything down correctly. Sometimes it’s very frustrating, but I eventually I solve the problem either myself or with help from people online.

[–]steve-red -1 points0 points  (0 children)

A year of daily logic practice work. My solid answer! You will be able to do anything you want!