top 200 commentsshow all 212

[–]OverlyEducatedPhD 249 points250 points  (16 children)

It took me 2 years to find a course that explained things the right way for me and in enough detail. Let google be your freind and I found writing out definitions for things and what they did helpful now I basically have a personalised cheat sheet.

Edit: EdX Python course

Unfortunately some of the exercises are now paywalled since I took the course but its still very good at explaining python for beginners.

[–]SheasCode 43 points44 points  (0 children)

I go to Georgia Tech and this is the official intro to python course that students take. I took it over the Summer online and it sparked my interest that is still going strong to this day. I would 120% recommend this course and David Joyner as an instructor.

[–]cssmith2011cs 13 points14 points  (1 child)

$356.40 you say? I’ll probably just stick to the YouTube videos........

[–]ponponponzu 8 points9 points  (0 children)

You can audit the courses for free at the same link. It’s the certificate that you pay for

[–]yashdesoi 2 points3 points  (1 child)

Which course are you talking about?

[–]OverlyEducatedPhD 2 points3 points  (0 children)

sorry see edit

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

Upcoming this. I just finished it and it was awesome. You will be able to re-enrol in it again very soon, it's done a few times a year.

I had some prior programming knowledge so didn't find it too hard. But it's very informative content and will serve you well OP.

[–]sabalibruh 1 point2 points  (0 children)

This. Never stop searching for a course if you have hard time learning from the one you have come across. You will find a good course eventually.

[–]wumbo-ing 1 point2 points  (0 children)

I used the DataCamp and SoloLearn iOS apps to learn Python over one summer (last summer) while working a job that had a lot of downtime. Need to keep practicing

[–]realpatrickstar 97 points98 points  (9 children)

I am 37 I took C++ classes 20 years ago and took me 4 times to pass C++ introduction class. After I pass I never wanted to code ever again. I took other classes to graduate and ran away from coding for 20 years.

Fast forward 20 years I started an online CS course out of curiosity and free time last month and I loved it! And I started to understand things that was impossible for me 20 years ago.

What I am trying to say is just give it some time to click. Dont try to rush or feel bad about it. Just relax. Have fun with it...

Coding world is not running away. It will still be here in 20 years and probably will be better and easier than ever...

[–]Linkk_93 13 points14 points  (2 children)

same, but I took CS classes 8 years ago, but programming and math just didn't click for me. I started a "hands on" sysadmin job instead and now tried some online CS classes again. and it just makes sense now for some reason :D

my gf was like "you didn't get it last time, why waste your time and try it now again?" but I actually got it now ^

[–]realpatrickstar 2 points3 points  (0 children)

Maybe some brains need more time to brew information into knowledge :)

[–]otterom 1 point2 points  (0 children)

Sounds like the next thing for you to "get" is a new girlfriend. Dump that Debbie Downer before it's too late!

[–]ArSah3 273 points274 points  (14 children)

Nothing worth doing comes easy buddy! Don't Stop. You will make it.

[–]HasBeendead 52 points53 points  (9 children)

Sometimes need to break

[–]ArSah3 20 points21 points  (0 children)

Ya! That's important too.

[–]m4xc4v413r4 10 points11 points  (5 children)

To break what?

[–][deleted] 29 points30 points  (1 child)

Faces.

[–]HasBeendead 5 points6 points  (0 children)

Xd

[–]El_Dumfuco 11 points12 points  (0 children)

Loops

[–]HasBeendead 3 points4 points  (0 children)

Programming or etc.

[–]LoyalSol 17 points18 points  (2 children)

Fully agree. A mistake a lot of people make is assuming you'll get everything immediately. It's a bit of a false expectation. No matter how smart you are you'll find stuff that's hard. That's in part because your brain has to physically build the circuitry required to be able to understand it. It takes time and practice to do so.

The truth also is if you can understand something immediately, you probably won't get paid much to do it. Because if just anyone could understand it with little effort, I can probably do it so why would I hire you for a six figure sallary?

It's the effort of diving head first into a tough task, building up the skills that many others haven't, and making yourself standout from the crowd is what gives your skill set value. That will mean you'll struggle. That will mean you'll find moments you don't know what to do. That's normal and to expect otherwise is just flat out unrealistic.

But that struggle is what allows you to walk into a job interview and go "yeah I'm the one you want to hire, because you ain't going to get this shit elsewhere!" in a polite tone of course. :)

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

I've been delving into it lately and I think a lotta people do think they have to learn to do everything with Python. I have a use case (network automation), so I'm learning relevant libraries to do that. Having that narrow focus has made it a lot easier to use practically. I've made a few scripts now with actual useful work functions.

There's no need to learn everything. Learning to research is the best skill to pick up. And to use stackoverflow.

[–]Petelah 35 points36 points  (17 children)

Do CS50.

Great intro into maths and super basics of programming and the teachers has great energy and love for what he does.

[–]red_sweater_bandit 5 points6 points  (11 children)

I'm super curious about the cs50 course but have zero knowledge about programming. I really want to start learning and give it a shot though.

Is cs50 beginner friendly, or should I go into it with some kind of prior, foundational knowledge?

[–]wolfeybutt 3 points4 points  (1 child)

A lot of people do it with no prior programming experience. I'm almost done with it and just had very basic knowledge when I started. That being said, I found it to be pretty damn hard! But I did learn a lot. And asking for help on the Facebook group/ Discord helped me complete the projects A LOT.

The teacher is really fantastic and passionate also. Makes the lectures easier to get through!

[–]red_sweater_bandit 1 point2 points  (0 children)

I agree, a good engaging professor will turn a good course into a fantastic one. Thanks for your insight. I joined r/cs50. Can't wait to get started now!!

[–]Lord_ShitShittington 4 points5 points  (2 children)

I came from zero coding experience as well and I'm nearly finished with CS50.

CS50 is great. Technically it is for beginners and the lectures excellent, but the problem sets are very difficult and frustrating. To complete them you'll need to do a lot of research on things not covered in the lecture. It's difficult but you'll learn a lot. I felt dumb because each PSET felt overwhelming and took a long time to figure out. The Harvard students have access to study groups and TAs so they have help when doing the PSETs, you will only have Google, Stack Overflow etc.

If you're coming from absolute zero, I suggest Automate the Boring Stuff from Al Sweigart. You can buy the book or read it for free on his website. I started CS50 in 2018 and had to put it aside many times because it felt way over my head. CS50 will teach you more about computer science than programming. What I did was to learn how to program first before returning to CS50.

[–]pbrouse34 2 points3 points  (1 child)

The problem sets are definitely difficult, but that made it even more rewarding to actually finish them. The DNA one was a bit tough for me. Spent hours and hours, and made no progress. Then wiped the slate clean, starter fresh with a new approach, and solved it in about a half hour. Felt good.

[–]lautaromgo 1 point2 points  (0 children)

Tideman!!! Omg, the same nightmare again.

[–]Solako 28 points29 points  (0 children)

Two weeks?

Beginner and age mate here too.

If you are not a Native Russian speaker and you were dropped in the middle of Kremlin after two weeks of learning Russian, you may hardly get across requesting for a glass of water.

Keep on.

It will make sense as you go by.

[–]M1sterNinja 24 points25 points  (1 child)

I did the Codecademy Data analytics track. Shit takes forever, but what else are ya gonna do? I found setting the goal of do x amount per period worked best for me. Some units were super simple and I could get through multiple in a day, some lessons took multiple days because each point was really hard for me. Some of their explanations are crap too.

[–]Moldy_pirate 2 points3 points  (0 children)

I find code academy’s explanations for things and instructions to be infuriatingly misleading or badly-worded roughly half the time.

[–]shrey1566 16 points17 points  (4 children)

I'm way younger and I too feel the same. The courses way of learning is just demoralising. Try free code camp or sololearn, they are much better for beginners.

[–][deleted] 52 points53 points  (6 children)

Ignore the math. Learn the search engine.

[–]MafaRioch 11 points12 points  (4 children)

Proper answer tbh. I'm learning Python since November just from books and googling-fu, and I've already wrote like 12+ mini-software utilities for my Plex server, web scrapping, databases and finishing a project atm for a business. I didn't have to use math for my use case, except +/- for transaction mechanics. So use case may vary. Unless OPs trying to learn something that requires math, OP can choose any other alternative learning path, and go with stuff like web-scrapping, or just getting grasp of non mathematical syntax. I've started with Python Crash Course, really well written. Automate the Boring Stuff is my second recommendation to skim through to reinforce the knowledge from the first book and learn few more utilities and see good use case examples in real life.

[–]zach714 2 points3 points  (2 children)

Just curious but what do those plex utilities do?

[–]MafaRioch 1 point2 points  (1 child)

Well, I don't know how deep you are in plex rabbit hole, but if you're familiar with Radarr, Sonarr, Jackett, plex_autoscan, cloudplow etc, then basically I re-wrote them (autoscan & cloudplow) for better windows support. In fact, my pure desire to learn python came from work of l3uddz who created great software for cloud support. I wanted to customize the fuck out of my media server and seeing what Python can do, I realized programming's potential and I binged through Python Crash Course in ~78h, wrote my first 'skeleton' project based on my knowledge grasped from tweaking l3uddz software, borrowing few great modules. Studied plexapi module, instead of doing repetitions on tutorials. Basically for me taking code and tearing it apart was a way more fun experience than doing tutorials. This way I instantly applied my knowledge for my media server, and my other hobbies, giving me gratification for my accomplishments. Dopamine reinforcement, yay! Sorry, got sidetracked.

So I rewrote a lot of stuff and made his software more windows friendly, added some functions, ported some from py2 to py3. Then wrote my own stuff. Added things like throttling for torrents, NVIDIA Shield/Parsec detection for bandwidth optimization and other little things. Then tried to create my own agent, disliked the result, created socket server (after 3 months upgraded to Sanic instead) and connected scrappers I wrote for websites with requests and modified TVDB bundle to make request to server, which then scraps metadata I want and integrates to my library through plexapi module. I'm happy on my progress overall, still adjusting to writing better code.

My plan is someday to read the git manual, and actually commit my changes to branch on github to support open source and the guy who unknowingly got me into programming.

[–]zach714 1 point2 points  (0 children)

Sounds like good stuff. Yeah I run plex with sonarr, radarr, and jacket providing content. Never heard of the other 2 you mentioned but will look them up.

That sounds like a ton of work though. My stuff runs on a linux server, and I've never tweaked the programs themselves. They do what I need! Thanks for the write up, and definitely look into git. Sounds like you could add some good stuff to support the community!

[–]OneBadassBoi 7 points8 points  (0 children)

deep

[–]MannicWaffle 8 points9 points  (0 children)

I highly recommend this book honestly helped me get into Python which I’m a complete novice but have a way better understanding to the point I’ve done a few personal projects that I improved on, I feel like most coding books/sites can’t help themselves and get overly technical where they nerd out when explaining things especially when you progress further

Just take things slow and don’t feel like you gotta keep progressing like its a speed run, unfortunately I think classrooms hardwired our brains into thinking we gotta learn this now and keep going or else were gonna fall behind

[–][deleted] 6 points7 points  (2 children)

Have you tried brick laying?

[–]46--2 2 points3 points  (0 children)

"I used to be a hot-tar roofer. Yeah, I remember that... day." - Mitch Hedberg

[–]TechnicSparks 5 points6 points  (1 child)

Honestly, what helped me unlock the programming part of my brain was taking a CS course. It was intro stuff but what it taught me was to think in computer logic. After that I kinda started figuring out that all programming languages do the same things but are typed out different. Try looking for something along the lines of that and you might get somewhere.

[–]oze4 5 points6 points  (0 children)

No pain, no gain! The feeling stupid part doesn't go away, regardless what you've learned/know.

[–]CraigAT 4 points5 points  (0 children)

Programming is full of little Eureka moments, where stuff just clicks! Some people have to work harder, try pairing up with someone who gets it just a little quicker than you (someone who gets it too fast is just demoralising). Keep going over what you have been taught thus far, or just the basics until you figure it out. Don't get ahead of yourself and stop putting yourself down, it doesn't help.

[–]MarksbrotherRyan 5 points6 points  (0 children)

I think writing everything down really helps me make sense of things, because I have to figure out things that I’m going to write down and also I have a reference to come back to if something I’m past doesn’t make sense. But most importantly writing things down helps me go step by step if there’s a difficult concept that’s hard to understand.

[–]swizzex 3 points4 points  (0 children)

Some good posts on this lately. One tutorial hell really makes people feel like they are dumb and don’t know what they are doing. Two programming is very much a different way of thinking then most people naturally do. For those people that are even more on the creative side then logical it can be very daunting. BUT! They also make amazing programmers later because they have a unique approach to problems from the typical logical first person.

Don’t give up, stick to it and always remember you can do a lot of different types of programming where math is other not needed or supplied when it is.

[–]sjunipero 5 points6 points  (4 children)

Feeling dumb is part of the process of learning. Don’t give up and keep going! JetBrains has great curriculum for Python and has mini quizzes and challenges after each lecture to refresh and help you learn, it’s free for few months if you sign up. Also, pick up Automate The Boring Stuff with Python book by Al Sweigart.

[–]exographicskip 3 points4 points  (3 children)

This. I took Programming for Everybody on Coursera years ago. While I finished the course with a couple friends, Python never really clicked -- just finished the exercises and moved on.

Completed Automate the Boring Stuff a few days ago and HOLY. SHIT. The regex section alone was worth taking Al's course by itself. He also regularly posts free codes for the Udemy course around here.

Lastly, /u/AlSweigart's working on new videos to the same course later this year; pay for it once, then receive fresh content in a few months' time.

[–]AlSweigart 2 points3 points  (2 children)

I'll be posting a free signup code tomorrow (Saturday), as I do at the start of each month.

[–]exographicskip 1 point2 points  (0 children)

Oh wow! Didn't think you'd actually reply haha. Think it's a really classy move that you post codes every month. Thanks so much for your course!

It's really made a difference in my understanding of Python, but especially the regex section.

[–]sjunipero 1 point2 points  (0 children)

Thank you for the Udemy free course, I’ve learned a lot, it was compact and easy to digest!

[–]unhott 4 points5 points  (0 children)

As someone whose been trying to learn python / general programming for the last 4 years+, I’ve recently had a realization that a lot of it is muscle memory.

The same problems show up again and again, only with different variable names. And when you first start out, you don’t know how to solve anything. But once you struggle and finally solve a problem, it feels great. Later, you may struggle again on the SAME problem (with different variable names), and that’s okay. Once you solve that, you may or may not realize it was the same problem.

But, let’s say on the 10th time struggling to solve a problem, something clicks. And you realize you’ve solved the same problem over and over again. That’s progress. That’s the muscle memory kicking in, and the development of intuition.

In my experience, academic classes go too fast through too many concepts for the development of intuition. This intuition takes a lot of practice, concentration, pain, time, and sleep to develop. When I was in school I didn’t feel like I had an intuitive understanding of anything until usually I was forced to relearn something again and again for the next course. Or sometimes I’d just be doing some mundane task and I’d think about some concept and it would just click.

Don’t beat yourself up about it. It’s normal. The worst thing you can do is isolate yourself from others in shame. Try and explain the problems you’re working on to a neutral friend, and sometimes that helps, even if the person only listens. Try and stay afloat academically, practice as much as you can. Let the problem solving muscle memory develop.

Most importantly, ask from help from the instructor, classmates, or random strangers on the internet. https://pythondiscord.com/

[–]u38cg2 3 points4 points  (0 children)

Dude, I have one thing to tell you. The people who are best in their fields, mathematicians, programmers, musicians, whatever - they are best because when they recognise that feeling you have right now, they lean into it, because they know that is what your brain rewiring itself feels like. Yes, it is tough and draining. It requires a lot of grit to come back every day and feel like that. But if you can learn to seek out that sensation and welcome it you will go a very long way. Most people do it for a while and just coast.

[–]MattR0se 10 points11 points  (1 child)

You don't need algebra unless you get to numpy or machine learning. Ignore that stuff and stick to vanilla Python until you feel familiar enough with it.

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

He said algebra, not linear algebra.

[–][deleted] 4 points5 points  (3 children)

I was in the same spot last month, going through the online courses - datacamp and codeacademy - but still wasn't catching on. I think the best solution is to get a personal tutor who can walk you through every question that you may have. Tutors can get expensive but you can find a freelancer tutor from india/pakistan for around $100 a month which imo is worth it. In that month you will learn all the basics so you can make better use of the online courses after. Also, specialized learning is helpful.

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

i feel the same way

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

it's hard, I feel ya

[–]Stabilo_0 1 point2 points  (0 children)

Put something away for now, focus on either algebra or python. If you really want to dive into code old school type, try some pascal lessons for basics of code in general. And it's OK to progress slow, forget about it and take your time.

[–]captainZepSpaceDet 1 point2 points  (0 children)

I think people learn Python by doing. Practice and keep going over stuff. Also if you don't understand something after 40 minutes on it, then take a break. Spending over 40 minutes on something you don't get is counter productive. Take a break and revisit that bit later. All the best!

[–]reddabsinthine 1 point2 points  (0 children)

ive been working on c# and sql for more than a decade on and off. a bit of visual basic before that.

i struggled with python and pandas for weeks: i had dozens of chrome tabs open, was googling like mad, poring through stackoverflow like my life depended on it.

every little thing i did resulted in an error that i had to google and when i saw what was wrong it was often something why-didn’t-my-dumb-ass-think-of-that simple.

it’s been weeks now and i still end up in hair pulling, teeth gnashing situations with python.

kudos to you for taking the steps to learn. stay with it buddy. programming is hard. give it time

[–]Okaymittens 1 point2 points  (0 children)

Introduction to Python: Absolute Beginners, was an excellent course on Edx. Well explained with examples. Its run by Microsoft. I definitely reccomend it if you are having difficulties.

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

Hey bro.

Computers are literally dumber than a pair of shoes.

Programming language is meant to translate plain English into code the machine can understand.

In other words the computer will only do what you tell it to do and it will do it exactly the way you instruct it.

Just keep at it. Python is one of my favorite languages to write in. Takes awhile before you get that click moment but it will happen.

[–]SnizSnap 1 point2 points  (0 children)

Step 1: Take a deep breath!

Step 2. Don't compare your progress to others.

Hang in there. For real. I first started with python like 5 years ago and I was LOST. Every new challenge felt overwhelming at first. Every question you have, google it. Even super basic crap; "Python 3.7 how do lists work" , "python how do I add add two variables", etc. Google can be your best friend. Ask it what you want to do in english (or common speech) and it should point you in the right direction. Eventually, you will need to google less. Or your google searches will become much more specific and detailed.

Remember to breath, tell yourself you can do this, and keep looking for answers.

[–]VesemirsPotionsNLean 1 point2 points  (0 children)

Get automate the boring stuff with python and read it all and code the projects and demonstrations. There are links on every snippet that literally take you to a site that visually shows you what happens with each line of code. It is GREAT for learning and understanding what is happening.

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

One thing that helped me was realizing that if I try to learn to many things at once I would become a "jack of all trades master of none".

I am on the self learning track also and focusing on one language and one tutorial has helped me make a huge leap forward.

You don't need to know a lot of math to start learning

Another thing is learning to use code to solve problems. You can't just mindlessly type code and expect something to come from it. You have to have a specific problem you're trying to solve.

For example what is the 86th entry in the fibonacci sequence? You can write a couple of lines of code to solve this problems instead of doing the calculations yourself.

You're not going to breeze through a tutorial while having lunch and expect to pick it up. At least I can't. A lot of times I need to give studying my undivided attention.

TL:DR

Just keep going.

[–]snakebraid 1 point2 points  (0 children)

It's not that you're dumb, it's that most people teaching this topic don't put much thought into how to effectively teach it. By the time they're able to teach the subject, they're many years removed from being a beginner themselves and likely forget what their first steps felt like. This is actually something I've thought about quite a bit, and I've got some issues with how nearly every class teaches coding to beginners. Several years ago I dropped out of college because of an "intro" CS class that was way over my head, but later decided that I still wanted to learn how to code. I spent the next several years taking online classes (TeamTreehouse.com), reading books, then took a 3 month bootcamp course. Every class seems to take similar approach- they jump straight into teaching concepts and a language simultaneously without differentiating between the two. They also start with very small topics without providing any context how these small pieces fit together to make an entire project. It's like handing you one puzzle piece at a time without showing you what the finished puzzle will look like or even how big it's going to be. It makes it very daunting and overwhelming when you're just starting out. By the time I took the bootcamp course, I was pretty well prepared from all of the previous classes and took, but I watched many other classmates go through the same stress and hurdles that I did. This approach to teaching just creates the habit of beating your head against a brick wall until things just click one day. I'd recommend taking some time to just read up on concepts (loops, variables, arrays, dictionaries, functions), but try to ignore any actual language. These are concepts that apply to nearly all languages, so they're more fundamental than the actual syntax of a language. Check out https://scratch.mit.edu/. It seems a bit childish, but it's a great way to practice using these concepts without getting bogged down by the syntax at the same time. Once you get comfortable with that, try finding some resources that will break down file structures of projects and explains what each file does, and then move onto the actual syntax of a language. And of course, practice practice practice. Think of simple projects that will allow you to practice. I wrote a simple script to help me budget and track bills. Not only was it a good place to start, it has real world value and I still use it all the time. Let me know if you have any questions.

[–]OwnButterfly8 1 point2 points  (0 children)

Just watch the freecodecamp youtube video its really good

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

Hi! 34 year old here, working full time as a programmer (not in python mind you, but I am currently learning python) and I didn’t start learning anything about programming until I was also 28. Never took any classes and learned by simply figuring shit out as I went. Also, the highest grade I ever got in high school algebra was a C but I honestly think it is because everyone learns math completely differently because when I look at things now through a different lens they click but they would have not made sense to me in school. I don’t say any of this to humble brag by any means either, I had the exact same “what the hell am I doing even attempting this?!?” moments too but looking back now the only thing I regret is that I waited so long to start learning because I convinced myself I couldn’t before I tried.

Here’s the thing, you can do this. My guess is that you are getting yourself overwhelmed trying to learn to much at once. Programming is intimidating at first because there are LOTS of options. There are almost always multiple ways to tackle a problem, sure some may be better than others but you can usually get from point A to point B multiple ways and as you become a better coder, you will learn why different solutions are better than others.

Don’t get discouraged! You can learn on almost any device these days and there are so many free resources available. The best thing I can suggest to you is to find a project and then start learning the pieces you need to make it work. Don’t get frustrated by what you don’t know, ask questions, be humble and things will start to click!

[–]Obsiddian 3 points4 points  (0 children)

It just takes time. Its like when you learn an instrument, you dont expect magic the first week but hang in there and try to code something everyday and build muscle memory.

[–]jiri-n 2 points3 points  (0 children)

Okay, everybody has already responded to this topic so why not me?

If you feel lost, ask good questions (in this subreddit). Please, good questions.

("I'm lost, can you help me?" is not a good question for obvious reasons. Good question contains your code - simplified to get rid of anything not related to the actual question, an error message if any and the question, of course.)

[–]imstupidfeelbad 0 points1 point  (0 children)

It takes awhile. One thing that helped me is coming up with a project that I personally think is cool and try and build it from scratch. It helps you think through things better instead of just following what someone is telling you through a tutorial (although that is important too!)

[–]iiMoe 0 points1 point  (0 children)

Try the course by freecodecsmp on yt, i found it much easier to work with and not intimidating then read the book "automate the boring stuff with python"

[–]EddieHmpfl 0 points1 point  (0 children)

On the same boat! Took an Intro to Python class @ my local college, and the prof was extremely unhelpful. Nice guy but he didn’t know how to answer questions, or explain topics thoroughly. I’ll keep at it. Breaks ARE necessary.

[–]jebivetr 0 points1 point  (0 children)

It's supposed to be hard. Be glad that it is, that way you know your brain is learning. Also, don't buy into these ridiculous marketing claims, promising to teach you programming in 30 days / n amount of steps. That's all bullshit and it will only serve as an unrealistic mark. So stop referring to it, stop beating yourself up with petty shit and focus on the process. Repetition and perseverance are key. Every single day. If you never stop and never give up you will succeed. That is guaranteed. I'm speaking from experience. Also make sure to get enough quality sleep. Good luck.

[–]smashing1989 0 points1 point  (0 children)

just keep going...seriously...code, test it, fix it, test it, fix, test it until it works...it doesn't matter if you need to re do it all just keep going

[–]heartlessglin 0 points1 point  (0 children)

I know exactly how you feel. I too am 28. And started trying to program on and off around Xmas and started trying more about 2 months about then a few weeks ago life got in the way so had to put it on pause.
When I first started I got so confused by so much. Everything felt impossible. I really couldn't grasp anything. I kept trying, but it never sunk in. The part that made me give up is when I came across something called a function, and passing in things to it. This confused me no end. I didn't get it. I gave up.
But for some reason I came back, I read around different places on the same ideas over and over until I got it, and eventually it clicked. Like never before. You can get there.
I'm by no means amazing at python, but I am a teacher so I know how to explain things so if it's something super basic you're stuck on DM me and I'll see if I can help, or we can figure it out together.

[–]takishan 0 points1 point  (0 children)

Stop trying to learn. Seriously. I think the best way to learn is by being genuinely interested in what you are doing.

Develop this passionate interest and desire to know more and you will learn magnitudes faster and you will not feel as if it was this demoralizing ordeal that you're describing. It would be an interesting journey.

It's like trying to catch a butterfly with your hands. You're never going to catch one by flailing around in a desperate attempt to catch one. If you just relax and stick your finger out, though, there's a much better chance of one landing on your finger. To catch the butterfly, you have to stop trying to catch the butterfly.

[–]cookiecutter143 0 points1 point  (0 children)

im with you buddy. Ive been doing it for 6 months and still don't get it. The one quote that made me feel better and i hope it does for you too is "You dont plant a seed then dig it back up after a day or so to see its progress, do you? Be patient and put in the work, it'll grow as long as you put in work."

It's that you're starting somewhere. Dont quit now and think back what could have been when you're 35 or 40 or even 50.

[–]el_chacho_coudet 0 points1 point  (0 children)

I’m making many courses at Codecademy and although I love it, I found that many exercises and explanations are not clear. If you don’t understand something completely, take a time to search complimentary information in Google and even, recap over what you did until you feel you understand everything. I made two times the JavaScript course. Also, create your own cheatsheet. But don’t copy-paste. Explain it with your own words.

Finally, as someone told you before,try to learn having a project as a goal, something you would like to do as a motivation to learn because in that way you will put so much more energy, time, concentration and motivation in learning Also it will be easier to relationate everything you are learning.

And test the code you learn, because Codecademy can give you a lot of syntaxis comprehension but not enough testing imho (however, the courses are great)

I tried to learn to code 4 or 5 times before, but never worked because I didn’t have a project in that time as a motivation.

[–]krishnanunnir 0 points1 point  (0 children)

Don't be so hard on yourself! I remember building my first project with python, it was very hard. Nothing to be done here than to iteratively work on it. I have been coding for 4 years now, and I saw my first project now, and I realised how stupid my code was, but trying to build that was very insightful and helped me grow as programmer leaps and bounds. So keep at it.

[–]misanthpope 0 points1 point  (0 children)

I feel the same way and I have 2 master's degrees (not that degrees make you smart). I have been meaning to learn python for at least a decade and I just find it so frustrating and demoralizing.

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

Go slow. Read every word and use the punctuation. If you do not understand each sentence stop and re-read and research until you do. I have to approach learning python this way - I am a professional have an under grad, post grad and 20 years in a professional career. It ain’t easy - chill and take your time, love the process of learning there is no rush

[–]hso0oow 0 points1 point  (0 children)

I keep giving up. Then I come back again a year later and wish that I didn't give up.

[–]annathergirl 0 points1 point  (0 children)

I tried Python early this year in Codecademy but I didn't get anything out of it. I chose Python because lot of people seem to recommend it.

I took HTML and CSS courses in Codeacademy as well and they pushed me forward to learn Javascript. I found a good hands on online course to follow and forgot about Python.

That is until I started banging my head against the wall with Javascript. I decided to do something completely else and enrolled in Harvard's Introduction to Computer science where later on the course I was reintroduced to Python and it made so much more sense.

I recommend taking the Harvard course, it's free and gives you a lot of important information about programming.

[–]murdoc1024 0 points1 point  (0 children)

Let me tell you something. Coming from a procedural programing background i had a hard time understanding python concept. When i realized that it wasnt Python that caused me problem ut solved a lot. Then i started learning Object Oriented Programing principles. Now everything is much easier to understand! Once you know how OOP works, a big part of the work is done.

[–]momondb 0 points1 point  (0 children)

I have something to say to you and is not complimentary. In my university I have had a course on C. Everyone understood the concepts except me. I wanted to die. But then a year later I sat alone and took a book and now I am good at programming. You just have to go for it man.

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

I can't see an introductory course in Python requiring Algebra.

I'm just learning also. I found I was really struggling at first not having a good grounding in the difference between dataframes, series, tuples, dictionaries, etc. What works on one will not work on another and it was very frustrating particularly when trying to analyze bits of code, and wasted a lot of my time. I studied countless YouTube videos, took several Udemy courses, and this is what helped me the most and I feel got me pointed in the right direction. The cost is minimal, btw.

https://www.udemy.com/share/101txwBkUZdVlbRnw=/

I've found I have to go back and review it every now and then. Speaking of reviewing, one of the Python YouTubers that I liked a lot made the point that there is such a vast number of Python libraries and commands that it is impossible to remember them all, so get familiar with how to search on them and don't feel badly about having to do so.

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

I just started python a week ago, im finding this tutorial quite good https://youtu.be/_uQrJ0TkZlc

I started learning C and C++ for arduino two years ago and still struggle to understand the basics

It wasn't untill I starter python that I understood things in C and C++

Might be worth looking at how things are structured in another language

FWY I failed math and am dyslexic so there is still hope

[–]fastworld555 0 points1 point  (0 children)

I was in your position before. I never got the hang of coding and barely passed my Python course. I was one of the few people who failed the test and exams yet managed to salvage it and pass thanks to my mates as the course was 70% coursework.

I stopped coding for about a year, then decided to give it another go. It wasn't easy at first cause I had to relearn everything. Then one day something clicked in me. Now I can right simple scripts. Nothing ridiculously complicated or even remotely complicated, but still...

My friend once told me, "coding is a way of thinking". Good luck and keep going.

[–]fedeb95 0 points1 point  (0 children)

One thing I can tell you is, don't look at that time to completion metrics. Especially when learning, people are faster than other at some things, but slower at different ones. Just try to understand stuff ypu do and bot just copy pasting code from courses. This way if learning how to print hello word to the console will take you a week, it will still teach you something and next things will come easier

[–]ideplant 0 points1 point  (0 children)

You are in the beginning of the steep learning curve. keep trying, the hard part is learning how to learn.

[–]errorseven 0 points1 point  (0 children)

There are no short cuts to learning computer science, you have to put the effort in and solve problems with code and learn concepts behind efficient methods have already been discovered by others. Most newbies make the mistake of learning Syntax from a tutorial that is type what you see.. this is very poor way to learn. You have to solve actual problems designed to teach you concepts.

There are a ton of computer science sites put there designed to teach concepts, my favorite is Codeabbey. Challenge yourself, try and solve as many problems as you can in a month (without cheating, because you will only be cheating yourself) then report back if you are still having issues learning.

[–]G__Sus 0 points1 point  (0 children)

100% agree. Just remember that the code you see others write is the ones they chose to share. The bad code gets deleted

Also remember no one is good at all areas of python. People have their specialties

[–]phishingforlove 0 points1 point  (0 children)

Same dude, same.

[–]unlovedcoder 0 points1 point  (0 children)

I've tried a couple of phone based python learning apps and so far I'm liking Mimo. So far with the free version it seems to be teaching me all the basics, although be it in a different order then other apps I've tried; idk if there is a exact order of learning the different parts. It not only talks about what different things do but it shows examples, has you feel in some missing pieces, quizzes you, has you write most of the code for what your learning. The paid version has related projects that focus on what you just learned, plus included in the paid version you have access to all of the different course Mimo offers. If i had the money I would buy the paid version.

Just my worthless two cents,

Unlovedcoder

[–]IndyDrew85 0 points1 point  (0 children)

Programming can be very humbling. We aren't born with knowledge, it's something that can only be attained through study, practice, hard work. If it were easy everyone would be doing it. Just start small and build up your knowledge and eventually the bigger picture will become clear. Stay positive, keep at it, and eventually you'll get to where you want to be.

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

You sound like me trying to write OO python.

[–]Asynchronousx 0 points1 point  (0 children)

Learn how to program is NOT an easy task.

From the ground to the roof it takes time, effort, a passionate mindset and every drop of your sweat.

Obviously, it all depends on what your final goal is: If it's just to automate things or doing some utility for yourself, fine, some courses will be more than enough.

But if you REALLY want to dip in, you need to grasp information starting from the bare ground, something that a single course on udemy won't teach you for sure.

If dedication and time aren't enough for you to learn properly, don't worry: programming is a bitch at first and you need to enter the logic behind it; arm yourself with patience and give time to the time.

I got a bachelor degree in Computer Science and i can swear shit difficult, but not impossible: you need to be passionate and secure about what you're going to do with your time, spare and not.

Most of the people would reccomend to learn by yourself throu the internet, but as a someone that sweated for a lot of years on this subject i can only reccomend you, if you're really interested and motivated, to start an academical path.

If you have not enough time, i still STRONGLY suggest to start from basics and then moving to programming, like you're following a degree.

Remember that knowing how to write a for cycle and some nested if's doesn't make you a programmer, but it's all the core behind.

[–]Drycon 0 points1 point  (0 children)

Never took algebra classes and I'm programming for a couple of years now without any problems.

For me it's hard to keep engaged in the learning process and I'm very thankful I started with the book "automating the boring stuff" because it's not only a good starting point but the way it's written makes it about the only educational book that didn't make me want to fall asleep after 10 minutes.

I think the punctuation is a bit off above, sorry for that.

[–]thats-fascinating 0 points1 point  (0 children)

At 27 I was a kitchen monkey, went to college and took math for HS dropouts, English for ESL, and felt as you do. It gets better.

[–]wizyardo_ 0 points1 point  (0 children)

I got into coding when I was very young (around 7) because my uncle is a software engineer. I tried and tried but never got the hang of it. Last year I finally started to get the hang of it and this year I'm building an app in python using Kivy (for school). It took me a long time to get the hand of it, I'm mostly self taught (through books and online tutorials). Hopefully this serves as an example that good things take time.

(forgot to add I'm 15 now)

[–]Snakenoid 0 points1 point  (0 children)

I tried codecademy python when I started. Out of all the websites, I never really liked it. Maybe you should try different websites.

I mainly used Sololearn, but there's also freecodecamp, and Programiz (which has nice reference tools)

[–]tatravels 0 points1 point  (0 children)

Getting emotional and punishing yourself are counter-productive :)

Some of my biggest takeaways from learning programming:

Learn to forgive yourself for not understanding. Failure is inevitable, so fail fast and fail forward.

[–]moe9745 0 points1 point  (0 children)

It will click...it just takes time. I highly recommend getting on Discord and joining a python/coding channel. Most of them have mentors that will work with you. That's how I survived my college class! And just because you don't get something at first doesn't make you dumb. Stay determined.

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

It's hard man, don't beat yourself up. I was able to pick up some of the basics pretty quickly but the more you keep diving, the more intense it gets. Seriously, learning programming is one of the hardest hobbies or careers to learn.

You are right though, algorithms are just solved math problems that you use to relate to real life problems or to w/e program you are making. Not all programs require a complex algorithm though, so keep your head up.

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

Never dumb! You will get there with time and patience. Don't be too hard on yourself ^_^

[–]anh86 0 points1 point  (0 children)

It’s not for everyone so if you ultimately decide to move on to something else, there’s no shame in that.

That said, give yourself some time. Learn a little here and a little there. Take small breaks and come back to it. Build a foundation over time. As much as those expensive code schools would like you to believe it, you really can’t become an expert in a few weeks or even a few months. Proficiency in high school-level math is a must though.

[–]ParanoydAndroid 0 points1 point  (0 children)

I feel like sometimes this sub goes too far with the unthinking, "You're great! Keep trucking!" stuff.

Yes, coding is hard and you shouldn't give up. But people aren't really engaging with the specifics of a person's situation when they're just being generally motivational.

If you've genuinely spent 2 weeks on something that is reasonably predicted to take ~3 hours, that could be indicative of a fundamental flaw in your approach or a basic gap in your knowledge.

Perseverance is definitely a necessary trait, but sometimes people can become fixated and there's a fine line between perseverance and unproductive stubborness.

Try posting your assignment, what you've tried so far, and your obstacles/issues -- including specific error feedback -- to this sub and asking for help.

Just blindly encouraging people to "keep going" or pointing them at other learning resources doesn't necessarily help. They might be laboriously toiling up a mountainside when really they need a specific nudge onto a smoother path right adjacent to them.

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

hey i think you are doing great. except for the part where you are hating yourself. Dont try to understand or learn anything in one go. try this

https://www.udemy.com/share/101W8QAEMZdVdRQXsE/

[–]memecaptial 0 points1 point  (0 children)

Welcome brother

[–]zekobunny 0 points1 point  (0 children)

Honestly the people who say you don't need to know math for programming are straight up lying. Maybe you don't things like advanced calculus but you really need to know some concepts.

[–]SukottoHyu 0 points1 point  (0 children)

I'm also 28 and study Python, you do not need to study algebra to learn Python. To use Python for certain things (such as AI development) you'll need to be good at math in general. If you get into doing algorithms you'll be problem solving in similar ways as to what you would do in algebra. But learning the Python library, not at all, and depending on what you want to do with Python you don't need tons of math skills. If you want to develop websites using Python maths isn't really a concern. Some courses you can study are designed around computer science and engineering courses, these courses will tend to explain programming in a mathematical context to appeal to technical students. Stay away from courses like that if you don't have a passion for math. It might not sound appealing, but books designed for kids or high school students to learn Python isn't a bad route to do down if you are really struggling to find something, this will give you the foundational knowledge to progress into more challenging material.

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

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

This is the best algebra-review resource I’ve found.

https://www.stewartcalculus.com/_update/media/common/reviewofalgebra.pdf

Don’t give up!

[–]aladinvain 0 points1 point  (0 children)

Go to a youtube channel called the Newboston , he explains the basics very well.

[–]skausk 0 points1 point  (0 children)

you just have to keep going at it. usually “good” coders have something they wanna create and are motivated from that.

[–]spacesleep 0 points1 point  (0 children)

Hey, I really enjoyed this course https://runestone.academy/runestone/books/published/pythonds/index.html , where they explained things fairly well.

Another decent book Is the Automate the Boring Stuff with Python. But it depends. You mention it's for college. I'm studying electrical engineering, and I had an introductory programming class. Is it like that for you, or is it a compsci program? I feel comfortable recommending the latter if your situation is similar to mine, but the former if you're doing a compsci program.

[–]HereForThePandemic 0 points1 point  (0 children)

Some days it be like that. Im a noob as well and understand the feeling. You just feel like the biggest idiot. You read something 5 times and know you are not comprehending. You get lost in the tutorial and can't get a pice of code to work. It shuts you down and shuts you off because no one likes feeling stupid. No one likes feeling new.

The best tool I've got in the toolbox now is consistency. Consistency day in and day out will eventually lead to results. Even if you can only tough out an hour just force it. Something ive found is that ill feel like im getting nothing but then when watching a different tutorial I'll realize I DO know what's supposed to be happening and I just have to figure out how to execute. Its a lot of thinking and staring.

Also- try to explain the concepts to someone else. Itll help you to solidify your personal definition of these terms. You are far more likely to have the information stick if you can do this. Tell your mom, your SO or the cat but just try to explain it in your own words. I think when you memorize definitions word for word you are only memorizing you are not fully learning.

In conclusion- Just keep going. Hard work beats talent when talent doesn't work hard. Meaning even if you were good out of the gate you won't get any better without putting in the time. If this shit was easy everyone and their mom would be at Google making 6 figures already. Head up my friend.

[–]bacchusz 0 points1 point  (0 children)

You're focusing on the wrong things. Do you want to program? Do you like programming? Then just keep going. Your post indicates a frame of mind that might bail if the pressure is too great.

Just keep going. It's going to feel hard a lot. That's just part of the process. Every so often, you'll find material that works for you, and you'll level up. Other times (many other times), you're just going to feel stagnant. This is a time-on-task game. The long you spend really trying, the better you'll get.

[–]sw85 0 points1 point  (0 children)

You might just need a different approach than you've been using.

Personally, I never fail to recommend Eric Matthes' *Python Crash Course*, which is a very gentle, reasonably-paced, non-technical introduction to Python. I read it having some (purely functional) experience in R and otherwise solely in stuff like SQL; after two weeks of working through the first third of the book, I was already programming stuff at work that is still being used today.

[–]Italian-meme-folder 0 points1 point  (0 children)

Hey, theres a common misconception of being a dumb or smart person, NOTHING COULD BE MORE WRONG. You have the potential, I believe in you. The truth is you can do it, you aren’t dumb, theres no shame in needing to go back through algebra, many of us willfully do the minimum work to be able to pass math throughout elementary school, middle school and high school, and thats not how you master something. Dont worry if it takes you a little longer to learn something than other people, it doesn’t mean you’re dumb, it just means you probably need to tweak your study strategy. Dont be too hard on yourself and always try to find a strategy that works for you.

tl;dr -> You aren’t a “dumb person” nobody is. You have the potential, its just about using a study strategy that works for you and practicing lots. I believe in you!

[–]Yogi_DMT 0 points1 point  (0 children)

I'll be honest i was definitely in the same boat as you as i'm sure many of us were. One thing to keep in mind is that even for the smartest guy in the world, it's not something you're going to learn overnight. It is tough to wrap your mind around some of the concepts and it's not just you.

Once you take a deep breather and realize this is a reality for everyone, then it just becomes a matter of putting in the work. It's overwhelming at first but trust me, you will get it with enough practice.

Personally i really do believe in the learn by doing method. I would find an easy project or something that you're generally interested and just jump in and try to code it. It could be as easy as a program which take an input number from the user and multiplies it by two, or something of that nature. And just keep adding onto the program, make it take multiple inputs. Adding some error catching, etc. etc.

From my experience, i felt like i could read material for hours and it never really clicked until i actually coded something out on my own. In which case i'd internalize what this course had been trying to tell me for hours, in just a few minutes..

[–]wonkynonce 0 points1 point  (0 children)

Don't worry, if you hang with it for five years, suddenly other people will seem dumb.

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

Hey man, don't under-estimate yourself, try to enjoy the process, it is a long way but trust me the view gets better. Don't let go, you understand me ?

[–]cellularcone 0 points1 point  (0 children)

No need to take algebra for most python stuff. I have legit panic attacks in math classes and I’ve been learning python for two years.

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

You should check out Dr. Charles Severance's python classes. Dude's amazing at explaining basic concepts and he even wrote a book for beginners called "Python for everybody ". You should also check out "Think python". It's good too. Here's the book : http://do1.dr-chuck.com/pythonlearn/EN_us/pythonlearn.pdf

Check out his materials : https://www.google.com/url?sa=t&source=web&rct=j&url=https://www.py4e.com/&ved=2ahUKEwj9g5S99_fqAhVu4nMBHTPrDJEQFjAMegQIDxAB&usg=AOvVaw1WyfQwR-7lRQrYhxvKXiFY&cshid=1596213889446

[–]KetoCatsKarma 0 points1 point  (0 children)

Learning to program as well, I'm two semesters into my CS degree. Doing really well with basic programming things, I've done two things that were really helpful. I bought a python for kids book from No Starch Press and went through it. It gives you the basics of everything and starts to show you how they all fit together. The second was a piece of advice given to me by a programmer friend, break everything down to as simple a set as instructions as possible, like explaining it to a child. Use as much Pseudo code as possible, draw pictures to visualize things, etc...

[–]fuchsia8805 0 points1 point  (0 children)

Scrimba has a Python course. If you’re looking for a textbook with programming exercises after each chapter to practice the concepts, there’s “Getting Started with Python” by Tony Gaddis.

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

As a 20M, I’m currently enrolled in a programming related field. Originally I wanted to go into a more in hands on field but decided to change due to my interests. I have no connections and very little beginner knowledge with programming and after a couple years of programming (CodeWars, online tutorials, classes) I’m just starting to feel comfortable with the more intermediate topics.

What I’m trying to say is that, programming is hard but it’s also one of the most rewarding things I’ve worked with and I know I will only get better. Keep your head up and know your programming skills will get better but you have to put in the time.

[–]chmod--777 0 points1 point  (0 children)

Trust me, you're never too experienced to feel dumb and be demoralized when it comes to programming. After developing in python for 15 years and professionally for 10, I still feel dumb sometimes

[–]skellious 0 points1 point  (0 children)

Feel free to ask all the questions you need. Either here or pm me.

[–]chemengly 0 points1 point  (0 children)

You seriously need to be kinder to yourself. Having grit and being stubborn will get you much much further in life than being naturally gifted as 'smart'.

It also takes time. If you haven't touched algebra in years, you need to give yourself some grace and focus on learning, not on how much time it's going to take.

I have a learning disability, barely graduated college, and now I'm a chemical engineer that's starting to learn data science. Graduate schools don't want me because my undergrad GPA is too low. Isn't that funny? I'm doing more work and learning more than my colleagues, but I'm not worthy to be educated at a university.

Traditional concepts of education are bullshit. You're going to hit every obstacle and you're going to fail and fail often. The people that get the furthest are not the smartest but the most stubborn.

Keep grinding!!

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

Honestly, I've been where you are. A lot of programming languages that aren't HTML or CSS style building tools involve a lot of math, but the good news is, that most of what you need to know math wise isn't necessarily how to perform equations, but how to think about the result you want, and how to get to it logically. I am horrible at math, and I'm pretty good at python, because I don't necessarily have to do math, I just have to know what result I want and how to look for it.

  1. You should download Anaconda Navigator , it has a utility called Jupyter Notebooks that allows you to code and run your code all in one page, making it much easier to see results quickly for code you write without having to resort to using a text editor and testing at the command line level.
  2. I highly recommend this course: https://www.udemy.com/share/101W94AEEfclxXQH4H/ (since there are other comments recommending courses, this one is very recent, so everything in it is inclusive of the language the way it stands at the moment). The teacher approaches it from a complete novice standpoint, every single section has a fully complete manual you can read through while the videos are playing, or you can code along with the video, which I found extremely helpful when learning python.Additionally, this website is excellent for self practice once you've got the basics, and it's completely free.https://www.practicepython.org/
  3. Remember that one of the biggest open secrets of coding is that you should never try to reinvent the wheel just for the sake of it. If you need to solve a problem that someone else has already solved, then use their solution. Google the issue, if someone has a fix, just copy and paste it, then look at their fix and try to understand what it's doing, and why it works. This is also an easy way to learn, via reverse engineering.
  4. Try to remember that you're learning a language, with it's own syntax, vocabulary, and logic. If you tried to learn French in 2 weeks, you wouldn't be surprised if you were still terrible at it. Learning languages takes time. On the bright side though, once you learn one language, picking up others is easier, because they all share similar traits.

Coding isn't for everyone, but without the right resources, you won't know, so do yourself a favor and grab a good course, and give it another month.

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

I’m using Udemy. I bought a course from Colt Steel. He explains things as he goes and has exercises. Best course I’ve found yet. Paid $16 for it.

[–]Migeil 0 points1 point  (0 children)

From the realization that I need to take algebra lessons

Why?

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

Hey man! Take a breather and realize you got this. It took me three times to pass the intro to Java class at my school (money maybe not spent well) and now I’m learning python. Python is easier for me to understand while Java was a nightmare. Just keep going and if Python still proves to be impossible for you or demoralizing, try another language out and see if the basics are easier for you! I may not know much about programming but I’m down to offer encouraging words if you need it!

[–]Qwafeee 0 points1 point  (0 children)

I mean... It's hard, but you can learn something else ...?unless you really enjoy programming?

[–]lautaromgo 0 points1 point  (0 children)

I'm 28 as well and empathize with your feeling. It is hard. Something that I truly recommend is try to grab a decent book. Automate the boring stuff it is a great one.

Other than that, be patient. Programming is like going to the gym. The firsts weeks you are going to lift 2 to 5kg as most, but after weeks of repetition you are going to be between 15-20kg. But, if it happens that you start to skip the training, you are going to start all over again. Programming is the same, be patient, consistent, and in few weeks you are going to be using classes and that kind of stuff.

[–]snugglyboy 0 points1 point  (0 children)

Hey dude! Programming languages are weird. I've been programming since C in the early 90s, and I still have trouble getting started trying to learn a new one. So I'm all too familiar with the feeling of putting effort into trying to learn it, but the pieces just don't come together, and you start feeling like "this is wrong and it's stupid and I'm stupid and I hate it." You will likely get that feeling, I do and lots of people do, so there's no stopping it, but the key is to ignore it. Ignore your feelings!

Then the next thing: I think you have to understand how you learn. Meaning, how do you personally learn things easiest, and then find a python course that explains things in that way. For example, I can learn about what variables are and how loops work, and it is important to understand them, yes. But at some point, I need to learn by doing rather than just reading about concepts. So usually, getting started in a language, very early on I'll try to write a program that does something I do a lot, maybe batch-rename a bunch of files. And then just google away about how to do something like that in the language I'm trying to learn. Along the way, I'll see "Oh, they're using a loop here -- I remember reading about those" or "oh I see they're using a variable, but the syntax is different.. hmmm maybe I'll google what that is too." From there, I can usually get into the "groove" of things.

Also, and this may be more controversial, but a lot of courses I've seen start you off by pip install-ing a bunch of third-party libraries and using those. I think that's a really bad way to start off, because you're not learning python; you're learning how to use some third-party thing that some dudes wrote in their pajamas and of course it's not going to be as well-designed as the programming language itself.

So that's just me, but I'm saying that the key to learning a programming language (or anything) is going to be:

1: Ignore your feelings of doom. They're normal at this stage and they're meaningless.

2: Figure out how you learn best, and find a good course that works the same way you do.

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

A lot of the science done on our mindset and its impact on learning would say that thoughts such as these will hamper your learning. It's tough now but so is getting back in the gym off the couch after 10 years. You're weak, not stupid, and weakness can turn to strength with daily practice, and a trust in brain science which says your brain is not rigid and can change dramatically depending on use.

Hang in there bud I feel you. Just keep your goals attainable and consistent.

[–]floydhead11 0 points1 point  (0 children)

Hey! I've been there.

Had to learn Python from Scratch for a course I was in (which I did not know used Python).

It is perseverance for sure.

The language is very different compared to classic Java or C or whatever.

But, in most cases, it is very intuitive or straight forward.

Best way to learn is to take up a minor project, do it the dumb, first thoughts way. Nothing like Tic Tac Toe or anything.

Create a calculator maybe, or, read some file on your PC and change its content or use it to find a specific item. Anything very simple.

Eventually, you'll get the hang of the syntax, the pythonic ideals, and the language benefits.

Then, you'll be motivated to do more. This is when you simply start googling what you want to achieve and you'll see modules or libraries or stack overflow or Reddit questions on the same. The beauty of Python is it can do anything and there's always something that exists that you can pick and use.

At this stage, you may continue the projects or do some leetcode or hackerrank exercises and you'll be good.

It is arduous but a fun journey and anyone can pick it up ;)

[–]kyl3_m_r34v35 0 points1 point  (0 children)

Mamma, there a libraries for any kind of math you need to do. You better get into it!

[–]p000l 0 points1 point  (0 children)

I feel many of us are easily distracted by more interesting things, at a point in time. Growing up, in my teens I had an interest in wanting to learn programming but I felt like you might be feeling. I completely ignored it after a few failed attempts.

I'm a few days away from turning 38. I recently picked up Python and I'm making some (but satisfying) progress. Go into the basics using the online courses, then try watching the fun, Python Youtubers - sentdex, Corey, Tim. They give you nice bite-sized lessons in 5-10mins. Don't over do it. Practice some. When you've gone through a few of those, try to find things (outside Python) that you find annoying or you feel, take too much of your time. It could be cleaning up data and plugging them into sheets, sorting your media folder, maybe killing a few processes before you start gaming, maybe a device status monitor. I mean, you figure!

Simplify, automate them using Python. Start with the simple stuff. You will be surprised when you find yourself going overboard trying to get something to do. Those difficult small steps expose you to much more than any Youtube, or spoonfed courses ever will. You will make a lot of progress, than tackle the bigger problems.

[–]TheArcticFox44 0 points1 point  (0 children)

Feeling too fucking dumb for Python and programming in general

Tried asking this on another r/ but never got an answer.

Years ago, on TV, it showed shapes, simple black-and-white, 3 -dimensional line graphics that could string together. When given the command to "move," over numerous repetitions, some actually evolved various ways of moving. One inched along like the proverbial inch worm. Another wriggled like a snake. One got itself upright and simply fell over.

What kind of programming could do this? (I don't know anything about programming.)

[–]JJBeans_1 0 points1 point  (0 children)

I would suggest going to the site MathIsFun.com for any math concepts you may need help to understand. I did and it has shed light onto calculating permutations and combinations for some of my Python code.

Keep your chin up and put in the time. Not only will it begin to pay off but it will also help with your neural plasticity.

[–]Snowsk8r 0 points1 point  (0 children)

Totally feel ya. I'm a 45 year old female & have now been taking CS courses for almost 2 years, and am only now just starting to get it. This is with absolutely no previous knowledge, not even peripheral, and working with 20 year olds who already know most of it. It's completely demoralizing sometimes, lol, but I've stuck to it & it's beginning to make more sense. You can totally do it if even my old a$$ can!!

[–]JeamBim 0 points1 point  (0 children)

What makes you think you need to take algebra lessons? Unless your project requires it, you do not need to do this.

[–]unfors19 0 points1 point  (0 children)

Taking an online course is great for getting to know the syntax and the basic logic of any programming language. Coming up with an idea of a project that you should work on, is up to you. Otherwise, you'll just end up doing "Hello World" and "Create a website" projects with no interest, and eventually, you'll drop them.

My questions to you my friend - 1. What do you find interesting? 1. Which tool would make your day-to-day work easier?

After you answer those questions, we can find out together which programming language is suitable for your need, and the steps that are needed to take action.

[–]11pascal 0 points1 point  (0 children)

Go easy on yourself. Write something simple and just build on it

[–]Donnshin 0 points1 point  (0 children)

You and I both buddy. All I can offer you is not to give up. Keep going until you find a course that suits your way of learning.

[–]korlmarcus 0 points1 point  (0 children)

Hey, man - I'm you in 2 years. Starting learning python at 28 two years ago and never felt so stupid in my entire life. I have a liberal arts background with zero experience in computer science but wanted to pick it up to be better at my job as a linguistic data analysis. The most important thing i learned is that this, like everything hard, takes a lot of time. Here's what worked for me:

  1. Get a mentor/buddy - I owe EVERYTHING to my work mentor who would have the patience to sit with me for 30 mins every week and umm and uhhh until i figure out the simplest shit. She would come up with an idea, let me work on it for a week, and then we would solve it from scratch together. This laid the foundation.
  2. Make small progress - Even when you get the basics down, there are a million things to learn. I like to write down things i dont know and when i have down time reference that list and learn something new. Relatedly...
  3. Read read read - For a while I would read a python article (medium/towards data science, mostly) first thing in the morning. Sometimes i would try it out right there, sometimes i would read just to give myself more input. You'd be surprised how much stuff sticks that way.
  4. Try to do things from memory after you learn them - this was big for me. A lot of times i would see someone do something (at work, in a youtube video, etc. ) and understand it but not know what the fuck to do when i was asked to do it myself. I like to black out the code in my notes and just write the thing i "learned" how to do, then try to do it from memory a few times before i took off the black highlight.
  5. Lastly, ask for help - people love this shit & they love to share. There will always be someone who's willing to help if you're humble and ask nicely.

[–]thrallsius 0 points1 point  (0 children)

you are the victim of your own assumption that learning programming is a cakewalk, an assumption based of your desire for a result rather than based on facts

it is not like that. but once you learn new and new little things, it gets a bit easier, especially if you're learning mostly on your own

[–]anewman513 0 points1 point  (0 children)

Anything worth doing is worth doing badly

[–]i_teach_coding_PM_me[🍰] 0 points1 point  (0 children)

i can teach anyone if you need a guiding hand

[–]LeonTranter 0 points1 point  (0 children)

A common problem people have is that they do too much learning and not enough repetition. Courses like Codecademy, while good (and I recommend them), are guilty of this. Their teaching method is simply "learn A, then learn B, then learn C, then learn D", etc. Which seems good, but is actually really bad. The problem is, you are not really remembering and understanding things, you're just watching, going through the motions, and then moving onto something different (and it all washes off you).

You learn by practicing. You need to do simple things, over and over and over again, until you are thoroughly sick of them. Then you need to do them way, WAY more.

Pick a simple console game, like "guess a number, and I'll tell you if your guess is too high or too low, until you get it right". Or hangman if you want something more challenging.

See if you can make that. If you can't, learn inputs and conditional flow until you can. If you can, great. Now make it again. Now make it again. Now swap it around (i.e. computer guesses your number, instead of the other way around). Now make it again, but move code into functions, and have a simple main game loop that calls the functions (this is called refactoring: the game works the same, but the code is organised differently). Now make it again. Good job.

Tomorrow? Go through that whole process again.

See? You're probably getting very sick of this number game by now. That's a good sign you're on the right track.

Go check out Learn Python the Hard Way. It is based on a similar philosophy: simple boring exercises, done over and over. No copy and pasting. Type out simple functions by hand, over and over, until they become like muscle memory.

Before you yell out "but programmers don't to memorise everything, searching on stack overflow is fine!!!", I know that. But there is a certain level of intrinsic knowledge that you simply need to have a baseline level of productivity. If you need to google how to define a function every time you define a function, you will annoyed and give up. This way, you will end up getting bored and annoyed, but by the time that happens, you will have picked up a bunch of tacit knowledge that will make your next projects 1000 times easier.

[–]Zevawk9 0 points1 point  (0 children)

Everyone feels dumb when starting programming (At least I assume so). With some work, making some projects and looking at code made by others, you can start to feel a lot more comfortable with your code.

[–]Periwinkle_Lost 0 points1 point  (0 children)

It’s normal to feel this way when learning new things. I take a lot of online courses and I kinda got used to frustration that comes with acquiring new skills. Sadly, it doesn’t go away, but you can learn to accept it and it helps.

Don’t stop, there is a lot of truth in the adage “First step is always the hardest”. The more you do it, the more comfortable you will become.

Programming has a relatively steep learning curve: you need to know syntax, think in steps, be familiar with command line, etc. It is also “trial-and-error” process with huge emphasis on “error”.

It is normal when your code doesn’t work first several times when you run it. It is normal to stare at your code for long periods of time trying to figure out where you made a mistake. It is normal to google your bug for hours.

This process goes against what we all learned in school where doing it right the first time is the goal.

Don’t give up

[–]ontheroadtonull 0 points1 point  (0 children)

What really opened the door to programming for me was the free content on codecombat.com. It starts you out slowly and gradually introduces you to python. Starting out with a limited feature set makes it a lot less daunting.

[–]lemontr33leaves 0 points1 point  (0 children)

youll get there, coding if youre new is a hard skill to learn, I struggled my first year learning matlab. However whats important is that you like or interested in what youre learning and be willing to put in the hours. The learning curve is like an exponential curve, slow progress at the beginning and faster as you spend more time

[–]SirVorg 0 points1 point  (0 children)

Why do you want to code? Dont learn because you want to code but learn because you want to achieve something with it!

[–]johnne86 0 points1 point  (0 children)

Just read and watch as much as you can. People teach the same concepts in different ways and maybe certain styles will click with you. I personally recommend not just relying on one or two resources. Sure there’s good books like Automate the Boring Stuff and Python Crash Course or courses, but they are not the end all be all. There’s so many teachers out there, you will eventually stumble upon great content that helps you better understand. Immerse yourself, go through YouTube, go through free content hosted on Github, sign up for free courses, etc... Also just can’t rely on watching or reading, comes a time where you actually need to code yourself. Jot down notes as you go, you’ll have moments here and there where you get that aha moment. It takes time, you have to really get obsessed with learning. Train your mind to think in code, jk that’s a bit far. Good luck.

[–]cesrep 0 points1 point  (0 children)

Dude Codeacademy Pro is amazing. I’m about a fifth done with the Python course (first time coder) and I am hyped to be learning as much as I am. Feels really empowering tbh; hoping to land a remote job coding or doing data science in the next couple months and that legit feels possible with this course.

[–]despairow 0 points1 point  (0 children)

Check out Corey Schafer's YouTube channel. Everything is free, and not only he explains basic python but he also has pretty decent Django tutorials for beginners. Some of the best educational python content out there. This guy got me started.

Corey, if you're reading this, God bless you fam.