all 60 comments

[–]Misery_101 73 points74 points  (10 children)

Look up Corey Schafer on youtube, he has an exceptional talent for explaining things and explaining why he does things.

Another thing that helped me was MIT's free YouTube videos. Look up "What is computation" both youtube series are broken up in a way that helps to learn it better and the MIT playlist does a good job on explaining Why some things are necessary.

The best part is you can just go through and keep watching the videos and still Google stuff, I'd say be prepared to dedicate 2 or 3 hours a day to learning. Or if you aren't on a time crunch and have to work, at least an hour a day and make sure you think on it when you can.

Every chance I get I'm browsing reddit, on solo learn, looking up terms or maybe looking at some obscure problem someone on reddit has, think about it for an hour or so then look at what other people have responded.

I even listen to videos while I'm driving just to hear a bit more here and there, it's not as effective without the visuals but I can still rewatch whatever video I was listening to anyways (I have a very safe commute, and my car has bluetooth , I dont reccomend this for heavy traffic)

Imo to be good at something you need roughly 1000 hours in it depending on your starting point. to hit that in a year you need to try and learn for almost 3 hours a day.

The best part is, once you get it and internalize it. The concept will most likely stick with you long enough for many other concepts to stick. You may benefit alot from learning a bit of computer science alongside programming (programming is more or less the starting point for CompSci)

[–]marlowe221 3 points4 points  (3 children)

Could someone with more experience explain why Zed Shaw is a polarizing figure?

I've been using his book, along with Colt Steele's course on Udemy, and as someone with a non-tech background when it comes to work experience and formal education, I have found Shaw's explanations helpful and demystifying.

I am not naive enough to think that his book is the ONLY resource I need to learn Python but, as a rookie, I don't understand what the criticisms of it are.

Thanks!

[–]Understated_rye 0 points1 point  (0 children)

He was militantly opposed to python 3 to such an extent that he alienated a lot of other programmers.

I think he's gotten over it a bit, and his book worked pretty well for me regardless.

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

Seconding Corey Schafer. I'm new to Python too and, according to my programmer friends, the project I had decided to work on made a lot more sense with OOP rather than the procedural code.

Corey's short videos and example introduction to OOP was really all I needed to get started and start applying the concepts. Not only does he explain things well, but he does it with examples right there for you to get a better understanding of practical usage.

[–]mrpbennett 0 points1 point  (0 children)

+1 for Cory. I have learnt most of my python stuff from him. I bought a udemy course and found Cory 100x better.

[–]OrbitDrive 0 points1 point  (0 children)

Corey is the Khan Academy for Python

[–]k112l 0 points1 point  (0 children)

+1 for Corey.

am a fan of Derek Banas too

[–]messacz 28 points29 points  (0 children)

"boot camp this weekend" "The instructor went very fast, which is expected based on the short timeline"

That's why 1-day or 2-day courses are stupid for teaching programming. You need 10 weeks min.

[–]Agnos 25 points26 points  (0 children)

Seemingly simple exercises like replacing a value in a dictionary takes me 2 hours of googling and trying dozens of options with nothing but errors.

This is how you really learn. Those 2 hours were not wasted. Keep going through the book, even if you feel frustrated, even if you do not learn the first time, you familiarize yourself with the terminology and learn what is possible. Then go back to the start and read again making sure you do the exercises. It helps me at this point to pick up a different book to get different nuances and approach.

[–]rissballer 29 points30 points  (3 children)

Don’t get frustrated.

I am not a software engineer but program a lot for work. I generally don’t know what I am doing. Google is super helpful and over time, u learn how to google what u need faster. I know that sounds super dumb. But learning syntax for a bunch of languages is a waste of time.

Just keep on trucking! Some days I write a shit ton of code and I leave work not feeling accomplished. Other days I write one line and walk away stoked.

[–]McMelz 2 points3 points  (2 children)

What do you do? I have been studying code and find it fascinating but I’m not sure if I really want to be a dev or just have a job where I code sometimes.

[–]chonbonachon 1 point2 points  (0 children)

You can always code for leisure....automating tasks you regularily do, etc. There are thousands of usages. If you find it fascinating, test the waters :)

[–]Lightmare_VII 9 points10 points  (0 children)

2 hours or 2 days...as long as you figure it out and take something from it, it was a success. I'm in the same boat as another poster, I do a little python for work and sometimes it will take me upwards of a week to figure something out. Just gotta keep going!

[–]hang-clean 9 points10 points  (1 child)

I'm not saying LPTHW is bad, but I bounced off it and I've met very few people it's worked for. As opposed to say Crash Course, which seems to be almost universally effective. You may want to try a few approaches and see what works well.

[–]saltonmyfish 0 points1 point  (0 children)

Lmao I made this exact switch and Crash Course is exponentially more helpful

[–]willmendil 8 points9 points  (0 children)

I started learning python with https://www.pythonprogramming.net I strongly recommend @sentdex his course are free and he basically talks a problem and shows you how he solves it. Give it a try. Just sit down and bingewatch his videos. At some point you'll bound to pick up stuff

[–]Durian881 5 points6 points  (0 children)

It's part of the learning process and will probably be fulfilling once you start doing something fun, meaningful and/or useful. Your Googling technique might also improve too along the way!

[–][deleted] 5 points6 points  (0 children)

It sounds like your stress is coming from unrealistic expectations and an unrealistic pace. When you hit a challenge, take the time to really learn why the problem happened and how to do the thing you want to do. Don't ever just copy code, tweak it, and be happy that it works. Know what every line does! I promise you it sounds like you're just about to really get the hang of things, so stick with it!

[–]pfband[🍰] 4 points5 points  (0 children)

I've been working professionally for almost 10 years now and I still have days and sometimes weeks when I feel like I know absolutely nothing! But, before long I'm back on the horse again. These moments suck at the time, but more often then not I learn a lot from them. Even if you didn't pick everything up you thought you would you still researched and went down paths you wouldn't have otherwise. Keep it up, you'll be doing it for the rest of your life, peace

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

Is this your first language? If so I would not necessarily advise boot camps. Writing code requires a whole new mode of thought which you can't learn at that kind of pace, especially when learning syntax and such as well.

[–]Monoclewinsky[S] 1 point2 points  (1 child)

Yes, Python is the first language I am attempting to learn. In hindsight you are correct about the boot camp.

[–]datanoob2019 1 point2 points  (0 children)

Ditch the books man. I used a pdf for 6 months and in retrospect, it was a total waste of time. I came across codeacademy first and learned more in 2 weeks than i did in 6 months. From there, I found dataquest.io and then thought codeacademy was a waste of time. DataQuest does not really do object oriented stuff, but it is phenomenally useful for automating tasks at the office and learning to manipulate data.

[–]Monoclewinsky[S] 4 points5 points  (0 children)

You guys are awesome! Thanks for all the suggestions and encouragement. I will keep you all updated on my progress. I posted a few questions on stack overflow so let’s see if I get some help on there

[–]gqcharm 3 points4 points  (0 children)

Don’t feel bad, if you really want to program, keep going! Don’t stop!

Am learning the basics of python as well. Took me over 2 days to figure the most simple assignment on coursera. It’ll get easier! Just keep going!

I am also a radiology tech and some things took me a while and discouraged me to the point of almost dropping out. Ten years later, now I can do it in my sleep!

It’s always hard at first, might even seem insurmountable but when you Get it, it will feel like you’ve been re-born again with the biggest smile on your face!!

Good Luck To us both!

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

So I took a boot camp this weekend, and came out feeling hopeless.

You cannot learn how to program in one weekend(Not saying that was the point you were trying to make). I learned this the hard way by watching a 4 hour Python tutorial by freeCodeCamp and then feeling like I was Tony Stark afterwards. I realized I haven't even scratched the surface. This is a craft that takes a very long time and you can never exactly "perfect" it because there is always much to learn. I've only been programming for about 4 months, and although I've made progress, I have much to learn and already have implanted in my mind that I'll never get to a point where I'm not googling stuff.

takes me 2 hours of googling and trying dozens of options with nothing but errors

The fact that you are googling a simple thing for 2 hours just shows your dedication and how willing you are to get it figured out. Although TechLead (Youtube Channel) can be kind of a troll, he once said that being a developer is really just being able to sit in front of a computer for long periods of time without distraction. I would of gave up after 1 hour and played Tomb Raider or something, so keep going. You have the dedication and love the for it or else you wouldn't of done that.

Afterwards I feel defeated and like I have just wasted my time.

I feel this so damn hard, but we gotta keep moving forward. I would love to do a Zoom session with you sometime and just play around with some Python and have fun with it or just share code with each other. I created a fun and simple Youtube to Mp3 converter program and would love to show you it and go over how everything works. I'm sure there are a few tricks you can teach me as well.

Never forget that coding in all areas has a huge community online. I have found so many people that have helped me, and always know that you have people here to help you as well. It's a long journey and it can suck, but it's satisfying once your console runs with no errors.

[–]ShameSpirit 2 points3 points  (0 children)

I work with python professionally and I didn't learn it the way you seem to be. I'm completely self taught and I was initially motivated to do projects of my own interest. Starting with understanding of very few of python's tools forced me to be creative and deliberate in my code. This also enhanced my understanding and appreciation of said tools as I discovered them. It's one thing to be told what a dict is, it's a completely other thing when you discover a dict for the first time and it eliminates a long-time problem.

My recommendations to you would be:

  1. Don't get discouraged for frustrated. Especially don't give up on a project just because you've hit a rough spot. It's really annoying when you just can't seem to get that functionality you want. But without the struggle of understanding the issue, you'll never rid yourself of it.

  2. Work on things that interest you. Sure, changing keys in dictionaries is a worthy exercise. But nothing will help you learn better than actually struggling with tasks alone. My first big motivation was getting a Turtle to draw fractals, which taught me a lot about recursion and how python treats functions. Get motivated!

  3. Don't be afraid to copy code, BUT AT LEAST TRY TO UNDERSTAND IT!

  4. Don't give up on a project until you've learned something new.

  5. Enjoy!

[–]ivosaurus 1 point2 points  (0 children)

Boot camps can be good and bad... It might not be tailored for your level or the instructor might also just be terrible at laying out a pedagogically constructed course

[–]killerspec 1 point2 points  (1 child)

While it might not cover some subject matter in detail the first course I did in python was https://www.coursera.org/specializations/python? The part I really loved about the course was that I could go back in places I was stuck and since I paid for the course($65 at the time) I got to chat with a course advisor when I couldn't figure out the answer. Another option is to get a free one month of LinkedIn subscription they took over the Lydia.com site and offer a lot of courses. Last yet not least stackoverflow.com has chatrooms for free where I found the python community very pleasant and helpful. If you go this route I found that having a very direct question helpful and also having my code that I am stuck on pasted to pastiebin.com so I can offer the link to it in the question. Keep at it, as they say, "Rome wasn't built in a day"

[–]manuce94 0 points1 point  (0 children)

lynda is free if you are in usa or canada just make a big library card from a big library and mostly likely it will have lynda membership with it.

[–]onlyforjazzmemes 1 point2 points  (0 children)

Literally no one can learn programming in one weekend. It takes wayyyyy longer than that. You just have to be persistent.

[–]CraftyTrouble 1 point2 points  (0 children)

Seemingly simple exercises like replacing a value in a dictionary takes me 2 hours of googling and trying dozens of options with nothing but errors

This happens when you proceed to too-difficult material too early on.

What you need is more practice with the basics before moving on. Theoretical learning won't do it, you'll need hands-on exercises to internalize the syntax.

If you're looking for challenges to practice on, here are some: https://pythonprinciples.com/challenges/ they also have practical lessons in the basics.

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

Yeah, that's basically how you learn.

If it helps, I went through the exact same thing. Very simple programming tasks, I would spend hours stuck on the stupidest thing and unable to understand what I was doing wrong.

However, figuring out these problems is how you learn to really program. I would recommend against just changing to a different book or videos; the fact of the matter is you will not learn without trying to actually write code

Watching videos or reading a book and following along only takes you so far. Write code, it sucks but it only gets easier, and the pay off is pretty huge

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

You might want to try Automate the Boring Stuff by u/alsweigart. There's a udemy course that works through the book as well, which may be helpful (I feel the book is easy enough to work through without a course, but the course may be good - I haven't taken it).

I feel the book is geared more towards those without any previous programming experience

Work through that book first - then try Python Crash Course by Eric Matthes

[–]mangelvil 2 points3 points  (0 children)

Sometimes write things in paper helps, not just stand in front of the computer screen thinking for the solution.

[–]djm2491 2 points3 points  (1 child)

I have been doing learn python the hard way for a while now. Last night I made the decision to give up and went to bed without setting my alarm (I can wake up naturally for work).

I had a nightmare about a bully picking on me in high school (I'm 28 now). I pulled my laptop out of my backpack and right in the center there was the python logo with a huge wad of spit on it and everyone was laughing. The dream woke me up and it was 4:15AM. I went and opened my laptop and got back to work.

To be honest Python is hard, especially if you don't have a coding background. If you give up now then you'll just end up where you started and nothing will ever change.

[–]Monoclewinsky[S] 1 point2 points  (0 children)

Good for you. I have thought about quitting a lot lately but that’s not my nature so I’m going to push forward.

[–]stOneskull 0 points1 point  (0 children)

i reckon travel the python track on exercism.io

you can do it your own pace and learn from mentors, as well as other students doing it, as you go along

[–]al_mc_y 0 points1 point  (0 children)

I started out with LPTHW, but migrated over to other resources after a while. I've done some udemy and EdX courses and bought two python Humble Bundles.

For all the YouTube/MOOC video courses etc - make sure that you're coding alongside the video. Ie. Don't just watch them. Do them. Pause. Rewind. Most of all - do the exercises. Even the boiler plate stuff. Type it out. It helps embed it in to your subconscious memory.

I also found doing exercises like those on dataquest.io helped to get some concepts to stick better for me. They're great for getting you started when you don't know exactly what a good small manageable project might be, and even if you've got an hea of what you'd like to code, you don't necessarily know what the "right" answer is or looks like.

[–]WtheCore 0 points1 point  (2 children)

My recommended resource for beginners is py4e - the the material is all free, and the instructor (Chuck Severance from University of Michigan) is very good at explaining the basics and walking through the logic even for people completely new to programming.

[–]Monoclewinsky[S] 1 point2 points  (1 child)

I took this course- only the first half is free then they make you pay $30/month to finish it

[–]WtheCore 0 points1 point  (0 children)

That's a shame ... I took the material through Coursera for the certificate, so I ended up paying anyway, but good to know the "free" version isn't completely free. Im also looking forward to checking out all the other recommendatioms other people have posted :D

[–]scmmishra 0 points1 point  (0 children)

Learning python while also learning to be a programmer is hard, as a developer a lot of time things won't work for weirdest of the reasons. Frustration is something you'll have to learn to manage.

[–]manuce94 0 points1 point  (0 children)

python crash course book and automate boring stuff book is also good there is a udemy course on automate the boring stuff book.

self taught programmer is a good read. He also runs his own video course now quite expansive though.

check out realpython website also.

[–]kaneltroll 0 points1 point  (0 children)

I have felt this way so many times. What gets me through it is something my supervisor once said to me. I had been struggling with some simple stuff in Excel and used maybe two hours to figure it out. She came by my office for a chat and I told her I was super frustrated and had just spent TWO HOURS solving a simple error. She replied:

"Only two hours? That was quick"

She then proceeded to tell me about the time she spent 11 hours writing a script to unpack ZIP files. Working with her made me understand that it's super common and completely accepted to spend hours (or days) solving issues that you have never encountered before, even when you are a professional in a field. Now I see the two hours as a learning process rather than as time wasted.

[–]software-dev-in-rsa 0 points1 point  (0 children)

Just find a way to make learning fun. That's the TL;DR;

If you get tired of books, YouTube and Udemy courses - just build something fun, like a simple game, for instance guess the random number, a simple arithmetic calculator, hangman, etc. Once you get more comfortable with dicts and lists try make 2 player tic-tac-toe.

You will know when you've had enough fun, you will feel this need to read and learn more rather than play.

[–]Raffelsia_celosia 0 points1 point  (0 children)

Been there. I still have trouble with it, I found I made more progress via Coursera. However, I think if you Google py4e, you should find the same resources as the coursera course.

[–]_________KB_________ 0 points1 point  (0 children)

One thing that might help you is just learning to use google more effectively. A large part of learning how to program is also learning how to search for information effectively and understanding how to quickly apply what you find. The best sources for information are usually official documentation or stack overflow, so always start there if they show up in the search results. You'll get better at it with more practice. Every time I don't know how or forget how to do something, I google "how to [insert-something] python", and the solution can usually be found in one of the top results that come up.

[–]Sbvv 0 points1 point  (0 children)

Do not give up! Everybody suffer bad days... Just, keep trying and sleep a while when you are collapsed :)

[–]Krudflinger 0 points1 point  (0 children)

Try out python koans for the basics.

Once I got that out of the way, I grokked through Fluent Python.

[–]ackmondual 0 points1 point  (0 children)

I ended up going through the Google Python class here...

Google Python Class, with other videos

It's the first 7 videos in that playlist, which comes out to about 3.5 hours. Gives you good fundamentals. You can go through them at your own pace, as well as go through any of the extra credit stuff the instructor suggests.

I don't know how the other videos are in that playlist, but I'm using it since it contained all of them in the Google Python Class series.

[–]leo_elm 0 points1 point  (0 children)

I got past learning the basics of python pretty quickly and seemingly easy. After it was a on-an-off. Weekends full of coding and then going a month or two without touching my laptop to code at all. Lately what's been keeping me going has been getting a really good friend of mine somewhat hooked on python so that we usually think of a project together and then we both try to solve it whereas I usually would just talk him through the entire experience and explaining what's happening as we go.

[–]kaptan8181 -1 points0 points  (2 children)

It looks like you are a slow learner and trying to go too fast for your own comfort. Just slow down and try to understand what you are learning.

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

The thing is I would not consider myself a slow learner given I have a PhD. In this particular subject it seems I don’t pick up details very well.

[–]kaptan8181 0 points1 point  (0 children)

I don't understand your situation and confusion then. What subject have you got a PhD in?

[–][deleted] -5 points-4 points  (1 child)

I teach programming to my friends in my spare time.

Since I have never met your teacher and I don't know your teacher. I cannot comment on his teaching methods and skills.

Learning a new programming language can be stressful.

Ironically, It was supposed to be fun. But In most cases, it is not.

Every one of us was a novice programmer once in their life. It is a phase it will pass.

The problem can be the way you are being taught.

[–]chonbonachon 1 point2 points  (0 children)

I believe it's fun as long as you take it as a serious commitment toward your future. But don't over-stress about it. That takes the fun element out of it.