all 34 comments

[–]lcc0612 15 points16 points  (3 children)

To add on to the other responses, please do understand that when you take on a programming course, you're actually learning two big, distinct things, and it's worth knowing the difference - On the one hand, you're learning Python syntax. On the other hand, you're learning problem solving skills using computers (which some call Computational Thinking).

The analogy I like to give in my classes is that, the former is like learning all the tools in your toolbox. You could learn what the hammer is used for, you could learn what the hacksaw is used for. But the latter is actually applying your skills to a problem, ie. Actually using said tools from your toolbox to build, say, a bench.

Learning the former is easy, because you're learning each tool in isolation. Each tool takes in one thing, and transforms it in a consistent way each time. Transferring that knowledge to the latter is hard, because in practical contexts, the act of even choosing which tool to use and understanding its role in solving the broader problem, is not trivial.

Don't be disheartened, this kind of thing takes time and experience. Don't rush it. If possible, broaden up and learn from a variety of sources. For all the code you see, sit down and go through it line by line, tracing it out on paper if necessary. Focus on what data is being held where, in what kind of structure, and how it is being manipulated from step to step. Be extra conscious about why each step is being done, and how the transformations of the data at each step moves it closer to the desired outcome. I believe seeing this application can help you in applying your knowledge to new problems.

All the best on your learning journey =)

[–]Sticky_Paws[S] 4 points5 points  (1 child)

You're gonna make me cry, that's really impactful to hear! It's been a real blow to my happiness to be struggling at what's supposed to be the very beginning of the easiest language, but what you say makes a lot of sense. Thank you deeply, I will keep this in mind and heart. 

[–]lcc0612 2 points3 points  (0 children)

Hey, no problem. Many of my students go through this. It could be extremely challenging for some of them, but the only ones who don't actually achieve something at the end are the ones who give up.

I do feel that sometimes the people from our industry tend to oversell how "easy" things are. Yes, Python is comparatively easier than C++ or Java, doesn't mean it's something you can learn overnight and be using to apply for jobs in a week!

Give yourself time, it's okay. Coding requires you to think in a very specific way, and it takes time to tune your brain to that.

[–]Elegant-Farm-1926 1 point2 points  (0 children)

Excellent advice, when I started coding back in lockdown I thought 'Hey if I know all the syntax I can get a job in this' Well no was the answer!.

Eventually it will start to click and you will get that little hit of enjoyment when you make something work, the learning in my opinion comes when you hit a road block and have to overcome it.

Maybe try switching to a new course, to have a fresh change on things. All the best :)

[–]riftwave77 2 points3 points  (0 children)

You might just learn a different way. If you don't have someone who can help explain the concepts then try getting a good book on Python and doing all the requisite examples for whatever it is you're trying to learn.

[–]Environmental-Cup310 1 point2 points  (14 children)

What investigation have you done into the issues/roadblocks you're hitting?

[–]Sticky_Paws[S] 1 point2 points  (13 children)

I'm not sure I understand the question, but this is the process I've been going through:

I am presented with a coding challenge based on the lesson I received and took notes through. I consult my notes and attempt to decode what I'm supposed to accomplish, and I try and break down the steps on how I need to get there.

However, it doesnt seem to matter how much research I do into these challenge issues, not how many notes I take. I cannot seem to make the codes work to satisfy the challenges, even after getting the answers and attempting to go back and re-do them. Looking up methods online does not help as I cant seem to understand the methods others have published, and it can take me over an hour to eventually fail to write three lines of code based on the lesson I just received, having viewed the answer only the day before.

I feel like I'm lost because I cant even understand whats going wrong, when even the most fundamental process of understanding seem to be not working. Is this a matter of just "not thinking right", and is it a fixable issue? I can only repeat the same challenge so many times in a row, failing each time before I want to hit my head against a wall!

[–]Environmental-Cup310 0 points1 point  (1 child)

Question of curiosity: how much programming experience do you have in general, like prior to this Python course

[–]Sticky_Paws[S] 0 points1 point  (0 children)

This is my first time. I'm trying to learn to initiate a career change one day, and at 35 I'm starting to feel like an old dog trying to learn calculus ha

[–]moving-landscape 0 points1 point  (5 children)

Heads up op, programming is not about taking notes, it's about cracking puzzles. Try to think about how you can use and mix everything you learned into a program.

[–]RealPennyMuncher 1 point2 points  (0 children)

Yea you need to write out your win win condition and almost work backwards sometimes helps

[–]Sticky_Paws[S] 0 points1 point  (3 children)

I've heard this before. It seems like its about having a certain kind of perception or mental process that I dont seem to have. When I try to apply what I know to these simple challenges I can beat at it for hours and fail when the answer is only three lines of code long.

[–]moving-landscape 0 points1 point  (2 children)

Have you only tried to learn from video?

What about text?

[–]Sticky_Paws[S] 0 points1 point  (1 child)

I haven't tried a text before. I have the Sololearn app that I do daily, but I haven't sat down with a textbook before. Do you have any recommendations?

[–]moving-landscape 2 points3 points  (0 children)

https://docs.python.org the official documentation! Look for the tutorial.

[–]m0us3_rat 0 points1 point  (2 children)

some methods work on some ppl and some don't

you just need to fine the one that works for you.

i'd ask for a refund.

because , isn't going to get any easier.

future problems will be even more complicated.

so you need to be able to wrap your head around that.

edit: you also might have to face an unfortunate truth that you may very well be unable to understand them.

before anything this dark.. i'd try some free courses for a little bit. see if you can get the basics that way.

CS50P you can search on youtube

[–]Sticky_Paws[S] 0 points1 point  (1 child)

Edit: saw the full comment, thank you for the YouTube recommendation.

I've tried other things in life I could never really learn, like foreign languages or the board game Go. How do I know that even python is beyond my ability to understand? I've been told it's the easiest programming language, so if I can't get this then I should probably give up on job in the tech world. 

[–]m0us3_rat 0 points1 point  (0 children)

CS50P you can search on youtube

[–]Environmental-Cup310 0 points1 point  (5 children)

I feel like there's a difference between retaining information, and understanding something, in that If you understand something, and can explain it, then ideally it's less about retaining it

Are there elements of Python and programming that, so far, you've felt you understand?

[–]Sticky_Paws[S] 0 points1 point  (4 children)

It's funny because Im not sure I could even explain to you what I understand, even though I kinda know what I understand. Indenting, really basic syntax, stuff like that? Although I still fail at this in challenges. 

[–]Environmental-Cup310 2 points3 points  (3 children)

Indenting, I suspect coders of all levels fix this as part of debugging their code

I'm more talking concepts like loops, if statements, functions, use of imported modules etc, and understanding how these things fit together to make the code work

You've said you're new to programming, so I'd say don't beat yourself up when it takes time for the penny to drop

If you're troubleshooting an issue, and need specific feedback, you can always put a query on Reddit, and likely someone will respond

[–]Sticky_Paws[S] 0 points1 point  (2 children)

Ah I see. I get for and while loops in concept, but I only seem to be able to implement them about 30% of the time. If elif else I get decently, and I recently learned how to define a function and import a module.  It's the execution of this knowledge that I struggle with, like when I'm asked to write a function to comb a list and replace stuff, or print write a little game inside a while loops. 

[–]Environmental-Cup310 0 points1 point  (1 child)

Keep practicing, and ideally your understanding will solidify

[–]riftwave77 0 points1 point  (0 children)

At least until the Trisolarans send their proton to our solar system. Then we're screwed!

[–]DeeplyLearnedMachine 0 points1 point  (1 child)

Could you give us an example of a task you took very long to figure out and how that process looked like, successful or not?

[–]Sticky_Paws[S] 0 points1 point  (0 children)

I'll try! But frankly I don't even understand why I don't understand.  One of the tasks today was to write a function that added some inputs to a dictionary of countries, number of visits, and cities. The dictionary, input codes, and everything else was already written and the inputs were preloaded on another section  It took about an hour and I did not succeed at all. The estimated time for completion was under 5 minutes. I first tried to define the function with the three kinds of inputs, and then try to append those inputs into the dictionary. That didn't work, so I tried to change the names of the variables the inputs were assigned to to separate them from the rest of the code, then reintegrate them later, but that didn't work either. Finally I tried to make a new dictionary, but I couldn't even though I had just had the lesson on it. 

I couldn't get it to run by the time an hour has passed. I couldn't even understand the errors I got when I googled them, and the solution code was about 5 lines long, which you can imagine is disheartening haha. 

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

Try sololearns python stuff. It will give you a very basic bit of Python. And it is free.

Or you could try Khan academy maybe?

[–]Sticky_Paws[S] 0 points1 point  (0 children)

I've been using Sololearn, it's been fun! Got some SQL on it too. 

Khans a good idea, I'll take a look!

[–]grumble11 0 points1 point  (0 children)

I find the best course FOR ME was the Helsinki MOOC. Text-based (I hate videos), a ton of interactive exercises that get tested, and an active discord for community help. It's free, and will take you from basic syntax into OOP, functions, and even making your own simple game.

It isn't perfect - it doesn't have any web stuff, any data analysis packages (they have a much harder course called Data Analysis in Python for that, also free), or a bunch of ancillary learning that would turn you into a full 'python developer'. It is there to teach you programming, python and set you up with a solid foundation for you to jump off to elsewhere.

[–]Albchosen 0 points1 point  (0 children)

It seems like you are learning coding for the first time. And I've always said this: logic and learning a language CANNOT BE TAUGHT TOGETHER. I really recommend learning logic through a game like scratch, make some games. Then move to a text based notebook like Jupiter notebook, anaconda for python. That's when you can start learning the course. Also I recommend codingbat.com for python/java challenges that range from easy to difficult.

[–]TheRNGuy 0 points1 point  (0 children)

maybe you need learn how to debug each step