Is Python too advanced for this total beginner?

Hello,
I really don’t know where to begin, or how. I’m trying to follow the instructions in the PDF book, but I can’t tell if I’m doing it correctly because I don’t know what anything means. My biggest learning obstacles are that I am somewhat of a perfectionist, which makes the random-feeling trial and error approach I’ve taken so far seem very frustrating. It feels like trial and error because I can’t tell whether or not what I’ve done is correct. I was told that coding requires that you do things in a meticulously precise manner, which I thought sounded wonderful, but so far it hasn’t felt that way. The book said to get Python 3.6 but then I read that it is okay to get a more recent version, so I did. Version 3.8.8 for my Windows 7 operating system. I also got the Atom and the Powershell attached to my Start Menu per the instructions.

The word “run” is confusing, I guess that just means to open it? It doesn’t seem like anything is running, it’s just sitting there. The PDF of Learn Python the Hard Way did not say to run as Administrator but that’s the only option my computer seemed to offer, so that’s what I did. I hope that’s okay. I googled “how to run windows powershell in windows 7” and found some suggestions. I also learned about the Windows button on the keyboard and Win+r, which of course made literal-minded me wonder if you are also supposed to type the plus sign. I managed to figure that one out, LOL.

I followed instructions 1 - 9 on page 27 and 28 of the PDF to the best of my ability. For instruction 10 - Learn how to make a directory in PowerShell I googled “what do you type to make a directory in python”. Based on my search results, I typed mkdir and then hit enter. That generated a bunch of stuff that doesn’t seem right. Also, I noticed that in the PDF 0.2.1 Windows: What You Should See has that mkdir and then there’s a space or two and then lpthw. Should I have typed that instead? How many spaces between mkdir and lpthw? Does it matter? I didn’t do that yet. Here’s what I have so far:

Great, the photo didn’t show up. Usually I have no trouble posting pictures on forums but apparently I’m not even capable of uploading a photo here, so instead I’ll type in everything it says in the Powershell so far:
PS C:\Users\Cyndy> python
Python 3.8.8 (tags/v3.8.8:024d805, Feb 19 2021, 13:18:16) [MSC v.1928 64 bit (AM D64] on win32
Type “help”, “copyright”, “credits” or “license” for more information.

quit()
PS C:\Users\Cyndy> mkdir
cmdlet mkdir at command pipeline position 1
Supply values for the following parameters:
Path[0]:

With the typeface on PowerShell it is difficult to tell how many spaces there are between some of the words, and the parentheses signs look almost identical to < greater than, and > less than, so I might have typed incorrectly some of the things that I did not type in the first place, the things that showed up on the Powershell after I typed quit() and mkdir

If I haven’t screwed up already and am ready to move on to instruction #11, I will google “how to change into a directory in the PowerShell (Terminal)”

For #12 I don’t know what “Use your editor” means, and what it means to “pick” a directory. Does that mean click on it, or select it? I guess I’ll google that too.

#13 Is googling what is meant when it says “look it up”? Is there some better way to look it up?
#14 I don’t know what “list the directory” means.

I probably seem like some kind of nightmare of a basket case, and it seems ridiculous to me that I’ve had to google how to do every little thing. And half the time the answers aren’t specific or detailed enough to help me know what to do.

So have I already done a million things wrong and is there a different computer course that I ought to take before I try to learn Python? I thought it would be a good idea to learn coding in all this spare time I have while my career as a professional bass player is either permanently destroyed or on indefinite hold, thanks to the pandemic, and Python was recommended to me as a good language to learn.

Thanks for any help/advice!
Cyndy

Wow, the photo did show up after all. Hooray. And my typed version it generated some weird formatting. It looks like the three “greater than” signs in front of quit() made it indent three times when I typed them. In PowerShell the three <s just appeared, they weren’t typed by me.

Hi @CyndyElliott,

Firstly, you are going to have to work on dropping the perfectionism, or you’ll never finish the book or a single program. Wanting to know the details of things is great, but programming can be demoralising when the computer shouts at you. Luckily, you learn to know what it’s shouting at soon enough.

In this example, you are telling the computer to make a new directory with mkdir.
But it expects you to give it a name for the directory it is creating. So it’s saying ‘I expect a name for this directory and you haven’t given me one!’

The command line and programming is a lot more explicit than a user interface like windows. So try thinking as if the thing need to be told everything like a child. In Windows you can use ‘new folder’ and create a blank/unnamed empty one. That’s basically using mkdir untitled.

1 Like

Thanks@gpkesley,
I typed in mkdir untitled and Path[1]: appeared on the next line. That seems better, I guess.

I just now read ahead beyond the 14 steps and can see that googling everything is what needs to be done. And it looks like Atom is the editor so I’ll have to figure out how to get that to interact with PowerShell somehow I guess.

In PowerShell it seems impossible to make the typing look like the example 0.2.1 because nothing can be undone. The cursor will only stay where it is. The up and down arrows don’t do anything, clicking on a previous line doesn’t do anything, etc. So I will try starting over instead of fixing what I’ve done. It just seems pathetic that I can’t even do the very first things correctly.

I started over. This time the screen was navy blue instead of black. The next step is to learn how to use Atom to make test.txt in lpthw. Since I have not the slightest clue how to do that, or even what any of that means, I will probably spend a few more hours searching online for an answer to that. Actually there are plenty of answers to be found, but so far I have not seen any that actually explain how to do it, step by step, in a way that someone with a serious lack of computer background can understand and do.

My current question is: Is this correct so far? It looks very different from the example.
Screenshot 2021-04-02 10.54.35

Yes, Atom is the editor. I could be wrong, but I don’t think it comes with an integrated shell. So don’t bother making it interact with PowerShell. Just edit your scripts in atom and run them from PowerShell independently.

Thanks Florian, I’ll try to figure out how to do that and see if I can make it work. I thought the PDF instructions said to do it in PowerShell, but I guess I’m supposed to find out what to do if it doesn’t work, maybe as part of my learning experience? I’ve got a lot to learn. Maybe this is designed as a strategy to weed people out, those instructions on page 27 and 28 of the PDF. But I’m not going to give up just yet! But I will say I’d be a lot farther along right now if I just knew what to type, and where to type it.

This looks like you got it right, the only thing is, it seems like you’re running this one as Administrator, which is why it’s blue instead of the previous that was black. I have no idea why your Powershell changes color when you run it as a different user though.

Otherwise yes. All of the commands you run in powershell take an argument. It’s:

mkdir THEDIR

You originally only typed mkdir so Powershell tried to help you by asking you what directory you wanted and that didn’t work out. That’s all that happened.

The Atom Editor will work, but if you don’t like it try out VSCode:

One more thing I tend to tell everyone when they’re starting out:

Take more time trying to solve things on your own before asking for help. You were doing great googling for instructions, and you basically had it all figured out, but I think you just didn’t take the time to attempt to guess or deduce what was going on. As you get further in programming you’ll hit things you just can’t ask other people for help, and that’s where you’ll get incredibly stuck if you don’t take the time now to really struggle with things for at least 2 days before asking for help.

HOWEVER, “really struggle with things” does not mean staring at the screen or re-reading code over and over. It means actually changing something, adding code, removing, printing things, and even starting over and trying again to see what you might have done wrong. You’ll get so much farther if you do that first before asking for help.

Thanks for all your help and suggestions for ways to approach this completely new-to-me world of computer programming. The learning approach is different from anything I’ve done in the past, so I see that I’ll need to get used to that. I know so little that even the appropriate questions to ask, or not ask, are unknown to me. I think I should try to figure out how to do these exercises using the programs that the book recommends, since that is apparently an approach that works, if it is done correctly.

It seems like it would be pointless to try a bunch of different text editors if I can’t even use the PDF recommended one correctly. It’s clear to me now that I will need to learn how to determine, on my own, whether or not I’m doing things correctly, and I guess that will remain the big mystery, for now. I am also beginning to realize that I’m supposed to already know what certain code commands, like “mkdir” stand for, and what they do, which I don’t, because I am a beginner. And “take an argument”. Is there a recommended dictionary or online source for these things? Nevermind, I will look it up myself and hope that whatever I randomly pick out is reasonable and correct. Thanks again.

I am going to print out all of the responses and refer to them whenever I have issues, which will probably be very soon at the rate I am going so far. And I will avoid asking any more questions here until I make it past this entry point I’ve been stuck in and am able to actually do some of the exercises.

I am still left wondering about my unanswered question, the topic of this post, for which I tried to provide to provide a reasonable amount of supporting material - “Is Python too advanced for this total beginner?” I have a feeling that this opening stuff is not really even Python yet. As a former teacher of piano and music theory, it has always been obvious that certain basic fundamentals need to be solidly understood before the comprehension of more advanced musical concepts will be possible. I imagine it is the same for computer languages. I guess I will spend the next few days researching online to see if I can discover whether or not there is another course I should take before I attempt Python again.

Well, another way to think about it is a large majority of what you need to know can be guessed or googled easily because programmers are ultimately trying not to use wording that’s too far out there. Let’s take “mkdir” for example. If you google “mkdir” you find https://linux.die.net/man/1/mkdir which right at the top says “mkdir - make directories”. You could also make a guess “emm kay dir? something to do with directories…so maybe making one or moving one?” You’ll never run into a situation where “mkdir means turn your computer off”. It’ll usually always be pretty close to the actual thing.

Another thing to keep in mind with my advice is to not take it in a literal absolutist sense. I didn’t say “never ever ask anyone for help ever”. I said:

“Take more time trying to solve things on your own before asking for help.”

Those words I actually said do not mean the words you read them as:

“It’s clear to me now that I will need to learn how to determine, on my own, whether or not I’m doing things correctly, and I guess that will remain the big mystery, for now.”

No, that’s not what I said at all. I said, try to figure it out on your own first, then ask for help. That’s vastly different from how you interpreted what I wrote, so it’s important that you see that and adjust your understanding so you don’t take it to mean “never ask for help”. You should ask for help, just after you try to solve it on your own first.

Since you teach music I can actually connect this to music education: What would happen if every time a student played a C on a Amaj chord instead of a C# and they called you on the phone to ask you to help them every time? You would probably tell them they need to practice it on their own and work through the fingering as much as possible before asking you for help right away. And why is that?

Because they can’t call you up in the middle of a concert asking you for help if they play a C instead of a C#. The same thing applies to programming. If you get in the habit of asking for help before you’ve tried to figure it out on your own then you never learn how to solve technical problems on your own, and that’s essential to being able to “play” as a programmer.

Also, now that I know you teach music I’ll say you will totally get programming. Musicians tend to do really well at programming because music and programming are an activity where you apply a basic set of rules to a sort of arbitrary language. I don’t know if you sight read (probably do) but programming languages are a lot like music notation in that they do have a logic, but it’s a logic all to its own. All it takes is time to learn the new language and part of that time is trying to “play” the code (music) terribly until you can play it well.

1 Like

Thanks for the encouragement re getting programming. I’ve been told this by several people who know me, so I’m not giving up yet.

I guess there must have been something about the way I worded my question that caused so many assumptions, especially that I hadn’t already devoted many (but apparently not enough) hours to trying to find out the answers for myself. As far as the music teaching analogy goes, it’s not likely that students of mine would be asking me that particular question over and over because I would have made sure that they thoroughly understood the difference between a major and minor chord when the topic was first introduced. On the other hand, certain of my colleagues seem to take some kind of perverse pleasure in complaining about their students regarding things for which they clearly did not provide adequate instruction. I have friends who do that. They tend to be the ones who are just in it for the money. I’m sure there are parallels to this in all areas of education.

As a teacher I am especially aware of the problem of my own tendency to take things literally. So if something seems open to interpretation I always look for additional clarification rather than assume that whatever initial conclusions I’ve drawn are the only correct ones. Thank you for confirming that. I’m sure I’ll be fine and I will manage to figure everything out once I become more familiar with how to use the resources that are available to me.

Cyndy, ultimately you are free to do whatever you want and if you came here asking questions I’d still answer them. I was only trying to help you by saying you should in the future spend more time researching. If that offended you then I am sorry, and you should feel free to ask for help whenever you want. I did not intend for you to be slighted that you didn’t spend enough time, or make it seem like you are a failure for not spending days figuring something out. Please forgive me and ignore what I said so that you can get back into learning.

Take care.

Thanks, no need to apologize since I was not offended by what you said. You didn’t know about all the hours and days I spent researching this past week prior to my initial post. I didn’t mention it because I thought it was pathetic that I had spent all that time and still hadn’t found what I needed to know in language that was understandable to me, for what are probably the most elementary of tasks for most computer people. I’m sure that plenty of the things I read would provide an adequate explanation to anyone who already knew a little bit about operating a computer with code, but that is not me. Not yet. I’ll keep looking. This has been an interesting conversation and I’ve gained a few insights. Thank you all for your responses.

I finally found the time to come back to this and post an update in case other people have the same problem that @CyndyElliott had with PowerShell. In the very first Exercise, in the second paragraph, surrounded by a big red box there’s this Warning:

Warning
If you do not know how to use PowerShell on Windows, Terminal on macOS or bash on Linux then you need to go learn that first. You should do the exercises in Appendix A first before continuing with these exercises.

If you are detail oriented enough to read this then you’ll see it says you should go through Appendix A to learn about how to use PowerShell if you don’t know how to use it.

Once you go to Appendix A (as the fairly obvious warning box tells you to) and do the exercises in order you’ll then hit this exercise:

https://shop.learncodethehardway.org/paid/python3/appendix-a-cli/ex4.html

That covers mkdir. The previous exercises cover how to use other commands such as pwd and ls, and there is an included video for Windows that demonstrates all of the previous commands live just in case you still can’t figure out what mkdir does from this description.

Hopefully that helps other people who may have missed the giant red warning at the top of Exercise 0, Appendix A: Exercise 4 covering mkdir, and the video explaining mkdir and all of the other commands.

A free service run by Zed A. Shaw for learncodethehardway.org.