I need help learning Python 3

Hi everyone,

I’ve been trying to learn Python 3 in school and I didn’t know how I just found it hard. Now I’m in college and I’m studying Software Development and I’m in year 2, and still finding it hard. At the moment my class is on learning the advanced stuff such as classes, objects etc. And I’m still finding it hard because I haven’t had a good experience learning the basics yet. Now that the corona-virus is happening and we are all at home, it’s a good way to learn, I’ve been spending everyday since March the 15th on my laptop trying to learn Python 3 via Codecademy Pro. I’ve gone from the Syntax all the way through to the start of Strings and each time I come across challenges, I’m finding it hard for functions or a for loop or anything I learned. I know how to do Functions, Control Flow, Lists, Loops, Strings etc. But I’m finding it hard actually trying to practice my skills on the challenges, I’ve spent days on something that should take me less than 5 mins to complete and I’m getting heated, I don’t want to give up, because if I do, I’ll need to do start all over again and if I miss one day I’ll forget everything. I’ve started this course already 3 times and I’ve done the Syntax, Functions and Control flow challenges and advanced challenges but when I reach the Lists challenges, I get stuck and got no idea what to do, even if I look at the solution, I understand how it’s done but Idk how to do the second challenge. I really want to learn but just getting fed up, because I really started only about 3 weeks ago for starting pro, and I feel like I’m wasting it because I should have finished Python 3 already and I’ve only just done 40% of it, and I’ve been home all day and I have everything for it in front of me… but yeah. The problem is me actually doing the practising on the skills I’ve learnt. Because for the challenges I know how to do them but not knowing how to put them together

I really want to complete this course and know how to program and catch up before I get into Uni, or else I’ll be screwed… Also I’ve been spending like 8 hrs a day on codecademy Python 3.

Python Course: https://www.codecademy.com/learn/learn-python-3

I hope I can get some tips or help, because I’ve watched YT, listed to people but nothing works for me…

Thanks.

Hello, @30058085, and welcome to the forums!

I’m not sure how we can be much help in a generic sense. It sounds like you’re putting in plenty of effort. Every human being is different, so don’t beat yourself up over spending more time “than it should take” on something. The important thing is to understand what you are doing. Break code up into it’s individual pieces. If there’s something that you don’t quite understand, dig in, and try to get a firm grasp on what it’s doing and why/how. Something that may be helpful is a site like http://www.pythontutor.com/visualize.html#mode=edit You can write or paste code in the editor, and then execute it, and see a visualization of everything that is happening. You can also post specific questions here in the forums, and we’ll do our best to help you. We won’t give you solutions straight up, but we’ll explain things, and try to guide you along.

You’ve mentioned loops specifically. Is there a challenge you’d like some assistance with? If so, post a link to the exercise, and whatever code you’ve written so far, along with as specific a question as you can muster.

Hang in there, and don’t be afraid to ask for help. :slightly_smiling_face:

Here’s a link to a simple loop example, if you’d like to see how pythontutor.com works: https://rebrand.ly/kt6qch9

3 Likes

[UPDATE]

Thanks @midlindner, so when I’m attempting the challenges e.g for Functions and Lists and for the advanced functions when I attempt each challenge, I get really close to what the solution is, and for most of the challenges, I know what I need to include in it, but I don’t know how to compile it together without getting an error.

Such as these challenges: https://www.codecademy.com/courses/learn-python-3/articles/advanced-python-code-challenges-lists

E.g 3. More Frequent Item

I really want to move on, onto the next stage but I feel like I need to get them correct, each time I see the solution I understand then how it’s put together.

Okay, so let’s look at More Frequent Item:


Provided test case:

#print(more_frequent_item([2, 3, 3, 2, 3, 2, 3, 2, 3], 2, 3))

For this test case, we have a list of 2’s and 3’s, and we need to see which there are more of. Forget the Codecademy stock solution. Forget Python altogether for now. How do you know which there are more of? What are the steps that you had to follow to come up with your answer? How would you explain the process to a small child, so they could come up with the correct answer. Write the steps down on a piece of paper, then think about what things are available in Python that could be used to complete each step. Don’t worry about what someone else knows, or how efficient your code is. Write code for each step, testing each piece along the way. Once you have a function that completes the task, try changing the input values to see if your function still produces correct output. Once you have that, then you can start thinking about ways to make it more efficient or concise.

Sometimes when we get ‘stuck’, it’s simply because we can’t remember syntax. When that happens, use the resources at your disposal. Google can be your best friend. I, personally, have to look things up all the time. You can also ask specific questions here in the forums. Every programmer has their preferred ‘go to’ sources for information. In time, you’ll develop your own.

2 Likes

@midlindner The help you have given me is kind of working, where I should break it down and google them. I have completed most of the challenges for Lists and loops. Each challenge I’ve done almost works where I’m just missing a piece of syntax or put the syntax in the wrong place. But once I reached the Advanced Python Code Challenges: Lists, for Question 4 and 5. That’s where It started getting complex for me.

I’m wondering, how much time should I spend time learning everyday? What’s the recommended amount, And should I be doing it everyday / how many days a week. Currently I’m doing it everyday. Going to be going onto Strings, although I do know kind of the syntax for almost all of the following: Syntax, Functions, Control Flow, Lists, Loops, Strings, Dictionaries as I have went over them before either in college class or online but not in depth. But I’m doing this Python 3 course slowly so I can learn and know what I’m doing instead of going fast and not grasping the concepts. I’m often just trying to memorize the code, even if I understand the concepts. Which I heard, you shouldn’t as if you know the concepts, you can take it into practice and doing projects.

Link to the challenges

4. Double Index

Print case:

print(double_index([3, 8, -10, 12], 2))

5. Middle Item

Print case:

print(middle_element([5, 2, -10, -4, 4, 5]))

Thank you!

Hello.

I don’t know that there is a recommended amount of time to spend learning to code. I think it is important to not take long breaks away from it because that does (at least for me) make it hard to retain things. Nothing wrong with taking it slow, and going over things more than once to gain a more thorough understanding.

If you still need some assistance with the 2 challenges you’ve posted, post the code you have so far, or a question with how you’re stuck.

1 Like

To add a little bit to the excellent advice @midlindner has already offered… :+1:

There’s a common adage that I first encountered in the context of music education - the “10,000 hour rule”. I hasten to add that you shouldn’t let that number intimidate you, as I’ll explain.

The “10,000 hour rule” has come in for a fair bit of criticism, for several reasons, but the underlying point is that practice makes perfect - and everyone is different.

Do I think it’ll take you 10,000 hours to get a handle on Python? Heck no. The amount of time that you should spend studying Python - or anything, for that matter - is however long it takes for you to understand it. midlindner has already suggested that you break down the code challenges into smaller pieces to help you tackle them; I would encourage you to apply the same methodology to learning Python itself.

What I mean by this is that you don’t need to be revisiting everything every day. Perhaps one day you concentrate on loops, tinkering about with them, then another day you look at functions, another day if/else structures… Write small chunks of code which use these things, see how you can break them and then work on why certain things do or don’t work and how to fix them.

I would encourage you also, the “real world” permitting, to spend a little bit of time coding every day. I’m not saying you need to be hammering out code for hours every day, but as little as 15-20 minutes a day can really help things stick.

To stick with my musical tangent, nobody picks up a guitar and immediately starts laying down Hendrix… there’s a fair amount of practice involved first.

So, please don’t get too concerned with any notion that there’s a magical pre-set number of hours you need to put in and that after you reach it suddenly something will go *click* and you’ll be a programming god… it doesn’t work like that.

Learning is a gradual process, and you’ll likely find that as you go along you’ll get several smaller *click* moments where the pieces come together and you think “Ahhhhh, so THAT’S how that works!”. Then it’s just a case of carrying on clicking those bits together into bigger things… :slight_smile:

3 Likes

Especially if you’re gonna try this with your teeth… :wink:

Great advice! Small steps.

2 Likes

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.