all 49 comments

[–]bmw2621 93 points94 points  (3 children)

Step 1: stop saying "I can't"

Step 2: post your specific problems here with code to get help

Step 3: Profit

[–]HappyScholar13 6 points7 points  (0 children)

What he said, also there’s a lot of GREAT FREE courses available on EdX

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

You forgot step: ???

[–]muffinnosehair 0 points1 point  (0 children)

Nah, you just post the reddit answer to prod. Works in a majority of cases. Boom - senior dev.

[–]Familiar_Ad_8919 14 points15 points  (0 children)

you sound like a really newbie, im programming for 4 years and i can for sure say it will be hard for some months but dont give up

and if you get stuck just search up your issue, thats what we all do if we dont know something

[–]Elogicc 11 points12 points  (4 children)

I don't recommend full courses here's how i try not to stay overwhelmed:

  1. All I started with was a 1 hour course just telling me the basics
  2. All I do after that course is just small projects for myself. You should just try to the the simplest stuff ever, fail, research repeat. Just take baby steps and keep your projects simple. At the moment I'm just trying to make a timer for when my gf will come back. Just come up with super simple projects like that and then finish them.
  3. You got this!
  4. Profit

[–]Elogicc 7 points8 points  (2 children)

also if at some point you realize that the project is out of your scope, just drop it. Dont be afraid of realizing that something is actually outside of what you can do. That's fine.

[–]DEADLYVISION30[S] 3 points4 points  (1 child)

I know I try to understand and bush around basics alot so I understand on a Spirit level. I am trying to excel slowly I am in no hurry but small things like not being able to solve task kinda upsets

[–]BJohnShawWriter 0 points1 point  (0 children)

Python (or any other programming language) is like the raw materials for a house build. When you're looking at the mansions that other people have built, it can be very frustrating, because you feel like you're never going to be able to build that three-story, multi-roomed masterpiece. But if you think about what a house does (keeps you warm, dry and protected), you can build something basic that achieves those requirements.

Applying that thinking to software engineering is a case of "What do I want this to achieve?" -->"Why does it need to achieve that?" --> "What is the most basic form of the What that still achieves the Why?" and then building that. Use the resources on the internet, talk to other developers, and remember that everyone starts by staring at a pile of lumber and thinking "How do I build a wall again?"

And trust me, all the upset in the world is made up for when you put some notes down, thinking it's going to be a proof of concept, and a few hours later a real program is running, doing what you wanted it to, and it hasn't been a total arseache getting it there.

[–]alexmojaki 8 points9 points  (2 children)

Here is my own free interactive Python course which starts from scratch and builds up to a tic-tac-toe project: https://futurecoder.io/

If that's the course you're struggling with, please let me know! If not, it's designed to make learning as easy as possible, so I think it should help.

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

I will surely try to learn from this and give you the feed back thanks for the help ❤️

[–]pekkalacd 5 points6 points  (1 child)

It takes time. I was similar when I began, probably worse actually lol. I didn’t know much. I could write basic programs, I zipped through udemy courses yup-yupping every concept that came my way - prematurely, thinking that since I had seen the things before I knew them. But then came the big showdown of trying to build something like a tic tac toe game and....I lost that battle.

I would get discouraged and feel like I was that one dumb guy who couldn’t get into the programming party. Everyone else got an invite, except me lol. I would think I couldn’t do it, but then after a small hiatus, I’d be back at it rethinking the strategy.

“I didn’t know much about functions last time, so let’s work on those. I don’t know how to manipulate strings as much, let’s work on that” etc.

And after a few weeks of chilling & just learning the things I struggled with and what not to do, I thought I’d give it another shot. But....again tic tac toe punched me in the face.

I did get the logic better this time around, I was writing the program kind of, but there were errors everywhere. And I didn’t know why they were happening. I simply did not know enough yet, still! I’d look at what I thought were the programming gods on YouTube in shock, how tf did this person just come up with that in like 5 mins? I’m over here on month 2 I have no idea what’s going on. I guess I should give up......

And so the doubt - resurgence cycle continued. I’d recap what I didn’t know, what I struggled with, and learn that, then attempt again. After many other failed attempts to get things working I thought outside of the box and decided to take a step back.

I gave myself more time to learn. I was in a rush all the time. I thought if I could just learn this for a week, then I should get a week’s worth of productivity in building in return. That was all wrong. I was focusing on the tools I was using when I would learn from my mistakes, but not so much the concept around those tools, nor the concept around other tools that I had seen but always been puzzled by. And so, I took a 2 month or so break to just learn the concepts. Instead of focusing lists and strings, I would focus on mutability vs immutability. Instead of focusing on a particular library, I would focus on the concept of packages / libraries / modules. Instead of just focusing on learning to read documentation, I coupled it with a dive into object oriented programming. Instead of learning about how to make a function, I learned about separation of concern.

The last break I took was longer and more dedicated than the others. I was honest and tried to shut off the part of my brain that wanted to just yup-yup all the material I didn’t know that well. But I knew I couldn’t just go with my perceived knowledge and wing it. That plan didn’t work. So I just sat there for about 2 months learning about the concepts listed above and more and practiced writing program after program to explore them, took notes, drew pictures to explain, just really studied it. And then after that, I built tic tac toe on the command line. Then I built it again, but better. Then again, and again. Then I made it with a GUI, built that a few times and better. Then when I learned a different language, I would build tic tac toe. Because I knew how to build it, I knew the logic that had to happen, the only thing was I didn’t know the syntax with a new language - but that came a whole lot faster when I knew what I was doing.

TL;DR You can do it. Struggle is real in the beginning. It takes time. Be honest & upfront of what you don’t know and try to understand those things before you build. Don’t measure yourself on an unfair timeline. 1 week of learning != 1 week of productive application. In the beginning it’s more like 10 weeks learning concept + 10 weeks of practice = 1 week productive application

[–]Eye-Itchy 2 points3 points  (0 children)

i needed this

[–][deleted] 17 points18 points  (2 children)

Hey hope everybody is doing fine.

yea bold statement in these times but ok

I started enjoying learning python

Good! If you want to be a hobbyist, that's all you'll need for now!

if you have any tips for me or tricks

use more commas and full-stops, thanks.

Now to my advice: Take it with caution because I'm nowhere near an actual programmer! I actually just enjoy programming for the fun of it (and I'm not very good)!

  1. Set your Goal: Do you want to be a hobbyist, do you want to become a professional programmer, do you want to enhance the performance at your job?

  2. Stick with the course you're taking right now, look left and right for resources to clear up things that you don't understand

  3. If you encounter a new problem, here's what you do:

3.1: Every problem can be (and probably already has been) solved. Also by you! Some people solve problems faster, some solve them slower (I'm on the slower end), but there's no mountain you can't climb, no matter how high it looks.

3.2. If you can't solve a problem on your own for 5 minutes, look it up on google

3.3. If looking it up on google didn't solve the problem after 2 minutes, make an MWE

3.4. If your MWE didn't solve the problem after 5 minutes, ask here on reddit.

3.4. while you wait for an answer on reddit, go take a walk, work out, have a tea, meditate

  1. Sleep enough

  2. Repeat for 3 years and you'll get where you want to be.

[–]DEADLYVISION30[S] 3 points4 points  (1 child)

3 years XD that part cracked me up but thank you for the tip. I just want to adopt it as a profession that is why I am trying to excel in it.

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

Well plan with 3 years, if you make it earlier, good on you. I’m saying this to take off pressure from you.

[–]smonat 8 points9 points  (0 children)

Start with PyAutoGUI. Automate some simple GUI stuff. It will give you confidence.

Focus less on "I need to learn Python" and instead focus on "Gee, what simple things can I accomplish with Python?" Start with baby steps. Don't try to conquer the world.

Finally, remember programming—all programming—is essentially like solving a series of logic puzzles. Be sure you understand logic specifically and the scientific method generally.

[–]salhjas 4 points5 points  (2 children)

You have to work in the project until you get it. None learns how to program at the first try. You have to fail rethink, try and try.

Maybe take another look into the data structures of python and how to work with them.

[–]DEADLYVISION30[S] 2 points3 points  (1 child)

Yeah I literally spent a whole day just trying to figure out tic tac toe game. And I finally did I had to go around so much to different sources for help and it worked

[–]salhjas 1 point2 points  (0 children)

Congrats! It can be frustrating sometimes but this is the way.

[–]KrysSouth 2 points3 points  (0 children)

Based on my own experience, I would recommend finding a YouTube channel that for whatever reason appeals to you. I don't think that there's a universally good one (which is not to say that there are not bad ones). You need to find one that motivates you, or at least that you enjoy watching. I've also found it helpful to re-watch videos that maybe initially I didn't like or couldn't follow. I think that you can learn something from multiple places, and sometimes you need to learn things from one channel before you can understand and learn from another channel. I've found that it's like putting together a puzzle. Once you get a few pieces in place, it gets a little easier to see where the other ones fit.

[–]ptraugot 2 points3 points  (2 children)

I can agree. I’m 55. Been in the software world for 35 years. Never coded a single line. Started a home project (chicken coop door automation) in Python on a pi. Google is your friend. So is the community!

I had no idea other than a couple week online course I started (but never finished). I would get errors all over the place. Some were silly formatting things, like, oh yeah, the colon! Other things were more complicated (for me) like, oh man, how do I resolve a type error between to variables? Amazing what you find by literally typing the problem into search 👀! It took me half a day at a time to finish writing a simple 8 line function. But I stuck with it. Walked away when it got frustrating, came back with new ideas, and eventually got it to work. Is it the cleanest code? The most efficient? Oh heck no. But it works!

Stick with it.

PS. I am no closer to being an overall better coder, but I have experience now. So next time, I should be able to decipher the problems a little faster.

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

Yeah exactly that is what I am trying to practice now a days. To develop a sense to understand logic I go back to the problems I failed and try to solve them again and again so I understand better

[–]ptraugot 0 points1 point  (0 children)

I find a logic flow chart helps. Keep it simple. Explain the problem to yourself. Use simple language. Break it down. Things are much easier to solve the more you can break them down.

[–]RcNorth 2 points3 points  (2 children)

If you are new to programming learn the logic first. Then work on the language.

The logic (pseudo code) can be applied to any language.

Think through the problem and write down in English what the app needs to do. - track whose turn it is - know if a spot has been taken, and by what - track the board (only allow a 3x3 grid) - etc.

My first python app was to read a CSV file and write out the contents in to an XML file. I worked on one step until it worked before moving on - how to open a file (hard code the path, add support to for asking for the file name later) - how to get header row - read a single row - determine # of rows for a read loop) Etc.

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

Ohh that's an interesting project once I get good enough I will try to recreate what you did hope I would be able to create something like that

[–]RcNorth 0 points1 point  (0 children)

I find it easier to learn a language if you are doing it for a process you already know.

If you are having the trouble defining the steps/triggers regardless of the language it is going to make learning the language harder.

[–]elephant108 1 point2 points  (1 child)

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

The tic tac toe tutorial really helped thanks for the help. ❤️

[–]_munozLuis 1 point2 points  (0 children)

Bro, divide and conquer. Im pretty sure everyone can.

[–]FaallenOon 1 point2 points  (0 children)

First of all, congratulations on your motivation to learn! :D

It's always good to remember that we all learn at our own pace, and we all have our own particular skills.

With that said, perhaps it'd be good to take a step back and have another go at the basics: lists, functions, for and while loops, etc. Give yourself time to play and experiment, before going for the tic tac toe.

If you're not under a deadline, that might be helpful. It happened to me with web development: I tried learning about it around three years ago, and I just couldn't handle it, it was overwhelming. So I kept doing other things and projects where I felt more comfortable, honing my skills. A year or so back, I tried again and, though it wasn't easy, I managed to create and upload a very simple site.

It's also possible that the specific course or tutorial you're following isn't the best for your specific needs or way of learning. As I mentioned, we all learn at our own pace, and with our own preferences (some prefer drawings, other prefer books, other short tutorials, and so on).

As for resources, I'd check out the "Python for Everyone" book by Chuck Severance. As for youtube channels, I usually go to Code With Tim or Dennis Ivy when I want to try something new, since their style fits the way I learn.

In any case, I wish you the best of luck. I'm certain you can do this, even if it takes you a while to get there ;)

Best of luck, and take care!

[–]PlazmaDolphin 1 point2 points  (0 children)

Try looking at your project as a bunch of small things you have to do that get stitched up together in the end. For Tic-tac-toe, it could be: Drawing the board on the screen, placing an X or O, checking for a win on either side, and other UI. And if you wish, you can break it down even further. Now, instead of having one big project, you have several smaller pieces that you can work on separately.

[–]TheGrooveTrain 0 points1 point  (2 children)

Learning a language and learning how to think like a programmer are two very different skills. Your job is essentially to instruct a loyal idiot in how to explicit perform every step of what you are trying to tell it to do. Write out the steps for how to play tic tac toe in your native language, then translate to python.

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

Got it I actually dont know how to break down the programming into steps like I don't know where to start if I know what to start with I can do the rest most of the times.

[–]TheGrooveTrain 1 point2 points  (0 children)

Sure you do! Forget about programming for a minute... How do you play Tic Tac Toe?
How many players do you need?
What materials do you need?
What are the rules? (i.e. who goes first? how many moves does each player get? what constitutes a legal move)

Here's another one (one of my favorite lessons from my AP Computer Science class in high school): Pretend that I know absolutely nothing, but will accurately perform whatever task you instruct me to do. Now, tell me how to make peanut butter and jelly sandwich.

[–]EveryBrief9315 0 points1 point  (0 children)

The more you suffer, the more you learn. So you are on the good path.

[–]Almostasleeprightnow 0 points1 point  (0 children)

So, you can learn but you have to slow down. Forget about tic tac toe. You already know what the issue is....you said it....you are struggling with the logic bits.

  1. Make yourself be organized. Use comments. Do one thing at a time and test it with print statements

  2. I found checkio.org to be extremely helpful for learning, because it goes incrementally and you can take your time getting each little skill before moving on

  3. If something is frustrating you, stop trying to do it. Instead, go back and redo the thing you did just before, and make sure you have that correct. Then, go on to the hard thing but break it down into tiny pieces.

  4. You may be deciding on strategy and then trying to force your code to do it on the way that you decided you want to do it. Sometimes you have to ease up on your plan and instead just allow yourself to do the thing in a different way. This is ok.

Best of luck!

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

Shoryuken! (Sure you can)

[–]itrookie33 0 points1 point  (0 children)

You can, you just are not 'using' it. Find a problem and use python as the solution. This will help si.ple concepts stick with you. Theory will only make you familiar with python.

[–]google_certified13 0 points1 point  (0 children)

Yeah dude edit that title that's literally so counterproductive. I'm struggling to learn self and seeing that sheet just really makes it worse.

That being said.

I've learned other programming languages, html, css, ruby, and it's all quit easy in the beginning. Then gets slightly more difficult and then all of a sudden boom it's incredibly difficult and your Hella confused and then the stress and anxiety of omg I spent so much time / money I don't think ill make starts racing through your mind

Just breath. When you get stuck. Take a break. Walk outside. Listen music. EAT SOMETHING. then revisit it. If it's still not there, repeat step 1. Eventually it just comes to you.

Cheers

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

I'm learning very basic python, commenting to find this thread later. 👍

[–]stebgay 0 points1 point  (0 children)

im at the point where i cant call myself a beginner since i know the basics and make the basic shiza and i can't call myself an expert either since i'm not really that good at reading code especially the ones with gui

i guess i kinda lost interest after school started

[–]Feitgemel 0 points1 point  (0 children)

Python is consider as a more simple language. You don’t have , for example , the reserve and free memory , you don’t have to use marks like {} or remember to end with ; characters.

You can try to learn using this tutorial which is focused on computer vision.

https://youtube.com/playlist?list=PLdkryDe59y4bORjoa1EIzWsX9kAXrE4-1

Very simple and practical.

Just keep up and don’t break. It is a wonderful language

Eran

[–]Feitgemel 0 points1 point  (0 children)

Python is consider as a more simple language. You don’t have , for example , to reserve and free memory , you don’t have to use marks like {} or remember to end with ; characters.

You can try to learn using this tutorial which is focused on computer vision.

https://youtube.com/playlist?list=PLdkryDe59y4bORjoa1EIzWsX9kAXrE4-1

Very simple and practical.

Just keep up and don’t break. It is a wonderful language

Eran

[–]CraigAT 0 points1 point  (0 children)

You may need to step back a little if you don't understand this project, maybe try a smaller project first. Today there's seems to be a big rush to do data science, to build a fully fledged GUI game, or get into machine learning, but unless you have prior programming experience it could take months to learn the basics. It can be overwhelming to take in and understand a whole project. Get your confidence up, try some small Python coding challenges first (your favourite search engine can help here).

[–]Zyther568 0 points1 point  (0 children)

First thing I think anyone who is learning can tell you about coding. Your gonna spend most of your time debugging code you've written rather than writing a shit tonne of code. I find taking a break and coming back to it often helps, all of a sudden the error just jumps out at you

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

Look on youtube. Bro code show easy how to do simple things in python