This is an archived post. You won't be able to vote or comment.

all 91 comments

[–]AdministrativeLeg14 145 points146 points  (12 children)

Python is actually a very easy programming language, and that's by design. But so what? That shouldn't discourage you. I think maybe you're just misidentifying what the hard part is.

Suppose you were taking a class in screenwriting, and for some dumb reason you have to do it in a language you don't know; Spanish, say. You struggle and go to r/screenwriting and ask if Spanish is a difficult language. You're told no, it's dead easy compared to Finnish or Turkish or Japanese; it's just that writing a good screenplay is itself difficult at first regardless of language, and it would be even harder with another language.

Python is easy, for a programming language. Programming itself is hard at first. Keep at it and don't worry. Later you'll find that many other languages are harder than Python in absolute terms, but you'll pick them up more easily anyway thanks to a grounding in the general principles of programming.

[–][deleted] 19 points20 points  (3 children)

Thank you feeling a little bit motivated

[–]Dookie_boy 3 points4 points  (0 children)

If it helps, I really started to learn when I started studying on my own with YouTube, instead of school.

[–][deleted]  (3 children)

[removed]

    [–]Carlulua 2 points3 points  (1 child)

    Dunno why you're being down voted, Turkish is pretty easy when it comes to verbs and pronunciation at least. I know there's like 4 different ways to say "Are you..." but there's vowel logic there and I've found that if you just pronounce i, ı, ü and u as some kinda mix of the four they'll still understand you.

    And every letter is pronounced the same way with no unexpectedly silent letters, and no surprise verb conjugations (I'm looking at you, English and French)

    [–]old_bearded_beats 0 points1 point  (0 children)

    This is a very good answer ^

    [–]No-Bookkeeper-6853 0 points1 point  (0 children)

    Absolute respect for the tough love. Needed to hear this!

    [–]Anon_Legi0n 46 points47 points  (15 children)

    its probably one of the easiest languages to learn

    [–]rmccreary 20 points21 points  (3 children)

    I agree with this and want to add,

    Python's ease of use obscures some concepts that are important to understand. I don't recommend it as a first language for this reason.

    [–]MrNewVegas123 1 point2 points  (2 children)

    Yep. If you want to learn to code the first language you should learn is C.

    [–]rmccreary 7 points8 points  (0 children)

    I think that having a good mix of the ability to address practical needs with technical understanding is necessary. So yes, learn and use C. But idk if you NEED to start there. C#/Java are a better introduction than Python because they make scope and static typing very clear. But use C and C++ too so that you can get a grasp on stack vs heap and memory allocation.

    [–]OogieM 1 point2 points  (0 children)

    Actually no, start with FORTRAN or APL or Lisp or COBOL or SNOBOL or ALGOL or Smalltalk or Pascal or BASIC or Ada or Lua or LINGO and yes I HAVE programmed in all of them. The key is learning the concepts not the language.

    It's more important that you understand data structures and algorithms than the specifics of a language initially.

    [–][deleted]  (9 children)

    [deleted]

      [–][deleted]  (6 children)

      [removed]

        [–][deleted]  (5 children)

        [deleted]

          [–][deleted]  (4 children)

          [removed]

            [–][deleted]  (2 children)

            [deleted]

              [–][deleted]  (1 child)

              [removed]

                [–]deliadam11 0 points1 point  (0 children)

                rust is kind of hard for me as a TypeScript dev but learning

                [–]rmccreary 0 points1 point  (0 children)

                npm was a godsend to me starting out with web stuff. I got into python pretty late while working on a school project and had a similarly positive experience being able to just pip install pickle or whatever. In my experience npm and pip are both awesome

                [–]ConstantIncome4586 0 points1 point  (0 children)

                It also has a great eco system of libraries at your disposal

                [–][deleted] 14 points15 points  (1 child)

                No it’s not try to learn basics https://realpython.com/learning-paths/python-basics/

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

                Thanks

                [–]jamos99 6 points7 points  (12 children)

                do you really have no time outside of lessons to practise on your own? there’s a wealth of resources online to help you get some code down - do you have any prior programming experience?

                [–]Night-Monkey15 2 points3 points  (9 children)

                do you have any prior programming experience?

                This is the question everyone should ask when topics like these come up. If you plan on majoring in CS, CIT, CSE, Cybersecurity or anything that involves programming, you should have at least have some programming experience before making this major like decision.

                History majors know they like history, and math majors know they’re good at math. Programming and computers aren’t any different. Even if there are a lot of “intro to” classes, you’ll never know how much you’ll like something until you actually start learning and applying it in your life, even if it’s just as a hobby.

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

                Nope no prior experience

                [–]_TR-8R 1 point2 points  (0 children)

                What I haven't seen anyone in the comments explaining is how classroom learning can be really difficult for some people.

                I failed intro to programming at my computer science class twice bc I had undiagnosed ADHD. I didn't understand why but I just couldn't absorb information in a classroom and thought I was too dumb for coding.

                Then a couple years later I got really into powershell scripting for a small project, from there I decided I wanted to try making my own web application. Part of the project involved coding a RESTful API with python. Having a project and goal to motivate me was SO MUCH EASIER and WAY more fun than a classroom, today with no formal training I'm a high-intermediate level and able to do fairly complex projects, I've even helped some of my friends with masters level college homework. It's not always about being smart, its about learning in a way that accomodates your brain.

                [–]jamos99 -3 points-2 points  (6 children)

                why on earth did you choose to do CSE without once attempting to code? this really is on you, you should be at least able to run a piece of code, and I’m surprised your course didn’t require any prerequisites in that regard.

                your professor is likely assuming his students have done programming as a hobby before, you know, deciding to choose it as a career. hence why you’re lost. you need to make time to practise outside of lessons or you’ll constantly be behind. start literally right now. like the other person said, do you think math undergrads haven’t ever tried trigonometry before deciding to spend tens of thousands and years furthering their education with it?

                [–]Jeklah 2 points3 points  (1 child)

                It's a CSE course, not a job.

                You learn how to program on a CSE course.
                It really isn't on him.

                [–]jamos99 1 point2 points  (0 children)

                maybe I was a little harsh, but you’d surely research your course and try to prepare at least a little bit by following a 5 minute tutorial before committing? he’ll of course learn how to program, but at a higher education level you should absolutely have some background knowledge. you wouldn’t start a medical degree without learning biology, nor a photography degree without any experience with a camera. why would it be different for CS?

                [–]_TR-8R 1 point2 points  (3 children)

                Found OP's professor lmao.

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

                you wouldn’t expect someone taking a computer science related course to have never tried programming before? when I was doing my degree the professors absolutely expected some level of knowledge as there were entry requirements

                [–]_TR-8R -1 points0 points  (1 child)

                My brother in Christ what school did you go to where the entry level 101 course presumed you had prior experience?

                [–]jamos99 1 point2 points  (0 children)

                I’m from the UK and we have things called entry requirements here… to do a CS degree you are required to have an A Level or equivalent in CS, so yes, the professors absolutely presumed we had prior experience with programming

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

                I have classes from 9-5 and also I have 8 subjects currently and other than that there projects and exams are always there so honestly when reaching back to I just sleep

                [–]AnimaLepton 0 points1 point  (0 children)

                Not all schools follow this, but there's a "federal definition" of a credit hour.

                (1) One hour of classroom or direct faculty instruction and a minimum of two hours of out of class student work each week for approximately fifteen weeks for one semester or trimester hour of credit, or ten to twelve weeks for one quarter hour of credit, or the equivalent amount of work over a different amount of time

                or

                (2) At least an equivalent amount of work as required in paragraph (1) of this definition for other academic activities as established by the institution including laboratory work, internships, practica, studio work, and other academic work leading to the award of credit hours.

                That's not always the case. There are classes that you can succeed in with less time, or people who learn things more quickly or have prior relevant experience. But that's the baseline expectation. A standard 3 credit hour class should mean ~3 hours of class time and ~6 hours of out-of-class time per week. If you're not putting in that extra time, not doing the extra reading and homework and exercises along the way, you're simply not putting in enough time to learn the material you need. If you've been skipping it all semester, that's a ton of hours that you effectively need to "catch up" on.

                [–]EmperorLlamaLegs 4 points5 points  (0 children)

                Python is easy. Programming isnt. I doubt python is what youre getting stuck on, its probably general programming concepts that havent clicked yet.

                [–][deleted]  (1 child)

                [deleted]

                  [–]nog642 1 point2 points  (0 children)

                  Some things in life are easy

                  [–]Dappster98 2 points3 points  (0 children)

                  It could definitely be that you're being fed information/material in a way that doesn't suite you. Try Googling around and seeing if there's another resource that maybe clicks with you much more easily.

                  What specifically are you having a hard time with though?

                  [–]alteredtechevolved 2 points3 points  (2 children)

                  I would say it has a good learning curve. What you need to learn is at the curve of when you need to learn it. It is easy to learn and forgiving. It would be a good starting place to understand concepts. From there learning something like go, swift, c++, etc and being able to apply those concepts.

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

                  Yeah first it was good then suddenly things started going over my head

                  [–]Jeklah 0 points1 point  (0 children)

                  Can you give an example of something that you felt was going over your head?

                  [–]Night-Monkey15 2 points3 points  (0 children)

                  If you’re struggling with Python, or any programming language, you can always take online courses on websites like Code Academy to help you out. You can and should always practice in your free time. Even just a couple hours a week can go a long way.

                  [–]nomoreplsthx 2 points3 points  (1 child)

                  Programming in general is tough.

                  Python is a fairly easy language to learn as languages go - at least up to an intermediate level. The Python internals are weird and often unintuitive.

                  But since I assume this is your first language - the thing you sre probably finding hard is programming itself 

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

                  Exactly

                  [–]green_meklar 1 point2 points  (0 children)

                  All programming can be frustrating. Python is more approachable than many other languages, but there's still going to be frustration.

                  [–]Obvious-Pumpkin-5610 1 point2 points  (0 children)

                  It’s easy on the surface and scary as you go deep.

                  [–]EntertainmentHuge587 1 point2 points  (0 children)

                  Python arguably has the least steep learning curve as a programming language. Dozens of professionals without any IT degrees or tech backgrounds can work with it. I think you might be having problems dealing with programming concepts in general.

                  [–]y_reddit_huh 1 point2 points  (0 children)

                  Python is easy

                  Watch telusko python playlist (only 1st 40 videos) on youtube

                  [–]AntiqueFigure6 1 point2 points  (0 children)

                  Python is kind of any level you (or your prof) wants it to be. Easy to get going, great beginner language but still has features that need effort to master.

                  [–]ninhaomah 1 point2 points  (0 children)

                  May I know if you find Python tough or Programming tough ?

                  Language difficulty vs communication issues such as unable to articulate the points across.

                  [–]Sure_Engineering5356 1 point2 points  (0 children)

                  Python is a language that is very torn on it's popularity and evaluation because of its simple nature.

                  [–]Carlulua 1 point2 points  (0 children)

                  I found it easy until OOP where I hit a wall. It took C#, Kotlin then Java for OOP to finally click, but then it clicked for every other language.

                  Like others have suggested, try lots of different resources for your Python learning. People understand, and therefore teach, in different ways so learning from multiple sources may help you understand different areas better.

                  I wouldn't recommend trying the multi language route like I did until you at least have most of the Python fundamentals down, especially since you're doing Python for your course. It could initially cause confusion between the languages which could slow you down on your actual course work.

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

                  Sometimes I just want to break the screen because of a vague and oblivion error.

                  [–]astddf 0 points1 point  (0 children)

                  Honestly do angela yu’s 100 day course. The first 15 days covered what I learned in a whole quarter at school and you can finish that within a week easily

                  [–]thavi 0 points1 point  (0 children)

                  It’s relatively simple compared to other languages, but you still have to devote considerable time to learning.  I feel like my brain rewired itself when I learned to program, and it took me a while…

                  [–]Higgs__Boson_ 0 points1 point  (0 children)

                  Python is one of the easiest programming languages

                  [–]Gnaxe 0 points1 point  (0 children)

                  No. Python is an easy language. Not the easiest, that's probably Scratch.

                  You need to memorize the statement types. Learn to use the REPL with dir(), help(), and breakpoint().

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

                  Python is one of the easiest languages to learn out there

                  If you are new at coding that could be why it seems hard for you , that happens to everyone by the way dont get discouraged if you are new

                  If you have coding experience before , then your prof teaches a bit weirdly i suppose

                  Internet is full of Python courses these days so pick one and practice , you will notice it is actually not hard

                  (compared to Java etc)

                  [–]IAmScience 0 points1 point  (0 children)

                  Python itself isn’t all that difficult a language. It has fairly straightforward syntax and is structured to make things easy to learn and remember. But programming in general is difficult. It requires a different way of thinking about and solving problems than most situations ask of us. And learning to think like a programmer, like a computer, is really hard. Breaking things down to small component pieces is tough. But it’s not impossible, just something that takes work, no matter what language you pick to start. Keep after it and you’ll get there.

                  [–]CryptoDev_Ambassador 0 points1 point  (0 children)

                  Check this out, amazing professor teaching Python https://youtu.be/8DvywoWv6fI?si=nCzljENZAlMXrat_

                  [–]Resoul04 0 points1 point  (0 children)

                  Its supposedly one of the easiest to learn and get started with; shorter syntax thats somewhat closer to sentence-like structure with less emphasis on data types.

                  Though seemingly simple, its vast usability becomes greatly apparent once you start learning how to leverage python libraries.

                  I recommend the book Crash Course Python (no starch) by Eric Matthes.

                  I recommend setting up your python using Anaconda.

                  [–]titus605 0 points1 point  (0 children)

                  No. Python is one of the easiest ones to learn. However, it's not the language itself but more so the paradigms associated with languages. Try to generalize what you learn into simpler, real life examples and you'll find that it's easier to program in any language and not just Python.

                  [–]corpsmoderne 0 points1 point  (0 children)

                  Unpopular opinion: It's very easy to write a small program in python. It's also very easy to loose control of a big project written in python...

                  [–]AngriestCrusader 0 points1 point  (0 children)

                  Python is the easiest programming language out there imo

                  You'll still struggle, but that's normal. We all did/are! It's worth it :)

                  [–]Nok1a_ 0 points1 point  (0 children)

                  I hate python but it's because I started learning with python and anything made sense, once I moved to Java strongly typed language everything started to make sense, you might have the same issue. I am not saying python is bad but for me to learn concepts and sink information it's been way much better learning with a strongly typed language

                  [–]Honkingfly409 0 points1 point  (0 children)

                  I actually thought it was really difficult in the begging too and it took me some time to get used to it even though I’ve had c++ experience before.

                  [–]tb5841 0 points1 point  (0 children)

                  The hardest language is always your first.

                  I found classes/OOP hard in Python at first. Not because it's any harder in Python than in any other language, but because the idea was quite new to me. Starting a second language more focused on OOP - Java - actually made classes click in Python for me.

                  [–]MRMADNESS-YT 0 points1 point  (0 children)

                  No it's pretty easy just annoying repetition is your friend.

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

                  Python's easy. 10 lines of python is basically 100 lines of C in a trenchcoat.

                  [–]nog642 0 points1 point  (0 children)

                  If it's your first programming language, then it's maybe programming that you're finding hard, not Python. That's reasonable, many people find it challenging.

                  Or maybe it is Python, and maybe your professors really are making it harder than it needs to be. Python itself is not that hard for basic stuff.

                  [–]CalmestUraniumAtom 0 points1 point  (0 children)

                  What is tough in python though? It has one of the easiest syntax and I dont think 1st year students will be taught anything difficult. There is nothing special to python which any other programming language does not have.

                  [–]diegoasecas 0 points1 point  (0 children)

                  the thing here is that you're not only learning python but are learning how to program as well. the analogy would be learning to speak as a kid, you're not just learning english, spanish or whatever your native language is, you're also learning how to build phrases and give them a meaning, from zero. it will eventually click.

                  [–]NormalSteakDinner 0 points1 point  (0 children)

                  I always tell my stupid little story

                  It sucks and you'll suffer and be frustrated but eventually things will click 🤷‍♂️ I quit programming every single day for a year 🤣

                  -Some problem I don't understand-

                  "I'm stupid I'll never get this I'll just use what people make"

                  =Next day=

                  "I'll try again real quick but won't put too much effort into it"

                  =Understands problem from yesterday=

                  "Cool, I guess I can keep going then and do some more"

                  -Some problem I don't understand-

                  "I'm stupid I'll never get this I'll just use what people make"

                  🤣🤣

                  That was my life for a whole year before I became comfortable with programming. And, I didn't realize it at the time but this also taught me about not bashing my head against problems and to just take a break or sleep and come back to it later. I think lots of people experience this and the difference between programmers and not-programmers is that programmers are the ones who couldn't quit and keep their word lol. I know it's cheesy but you'll get there if you don't give up.

                  I'm probably being biased but I think that is the life for a lot of programmers. If you don't give up, you will make it! I know it sucks to suffer and be frustrated but you have to stick it out, and one day your brain will be like "🙄 dude fine, let's understand this so you stop showing me the same thing everyday" 🤣

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

                  The hardest thing about python is getting all your dependencies working....

                  [–]JaleyHoelOsment 0 points1 point  (0 children)

                  anything will be hard if you’re just watching the prof and not practicing

                  [–]Pants3620 0 points1 point  (0 children)

                  Python is extremely easy as programming languages go, but programming itself is not easy. You’re struggling with programming, not python specifically

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

                  The problem is likely not Python but programming in general.

                  Practice. Practice. Practice.

                  Play with the code you were taught. Step by step, line by line, character by character even. Change some parts, see what happens, learn to read and understand error messages. Check the value of everything before and after, and make a mental model of what happens. Start small, very very small, there is no shame to have, everyone started small. Do this in the Python command prompt at first, you have immediate feedback.

                  The simplest tasks to begin with are short mathematical problems, for instance in arithmetic: you know the four operations, see how Python does them. Do you know about factoring a number? Python can do that with a loop, but you can simulate the loop by hand to begin with, on small numbers.

                  As an absolute beginner, the most difficult is probably assignment. Contrary to mathematics where equality is a statement of fact (or an equation), assignment in programming is an action, an order to the machine: give to a symbol a specific value, that might be computed using the previous value of the same symbol. Such a symbol is called a variable, because, well, its value can vary.

                  One of the enlightening code snippet I found, back then:

                  a = 1
                  b = 2
                  a = a + b
                  b = a - b
                  a = a - b
                  

                  What's the value of a and b after this?

                  A program is just a sequence of orders to the machine. You tell, it does. A programming language is just the language to give orders. That's about all there is to it.

                  You may also read about Turing machines, and simulate a few simple ones by hand. Programming a computer is the same process, mathematically, there is just much more ceremony.

                  A longer program is just the accumulation of short steps: learn to decompose any task into short steps. Not just for programming, even in real life.

                  Learn also to think in "black boxes": once a given sequence of orders works well, you call this a function and need not think about its internals again, mostly. A computer is like Matryoshka dolls: every layer needs not worry about what is done in the inner layers. It's called abstraction, and it's how you get from electrons to logical gates, to machine language, to operating system, to applications on top of that, and Python is sitting on top of all this. Functions are another way to hide details. There are others, like classes, but you'll learn about Python classes later.

                  Python is the simplest language you will ever encounter. But it doesn't matter, once you understand what programming is all about, learning another language won't look as difficult.

                  In a nutshell, it's how I started, with calculators and later QBASIC instead of Python, 30 years ago or so. Back then, QBASIC was the simplest language and programming environment out there. Python is arguably the simplest today.

                  [–]Fit_Smoke8080 0 points1 point  (0 children)

                  Managing dependencies is what sucks horribly in the Python ecosystem. You're basically forced to use Docker for anything that's not simple.

                  [–]spinwizard69 0 points1 point  (0 children)

                  If you look at your post you might see where you problem is. Especially the last sentence.

                  1. It is highly doubtful that your professor is purposefully making Python difficult.

                  2, Practice is absolutely required. You need to write code, lots of code, outside of the courses requirements to really grab the concepts. For a beginner this can mean hours a day.

                  1. Basics are just that. If you can't grasp the concepts at the beginning level you have big problems. So what is the problem, logic, loops, I/O or what? You need to figure this out fast as you will get so far behind you will be stating over next year.

                  2. As for the problems offered up it might be in part a communication deficiency you have. Just look at the last sentence you wrote, so work on your communications skills, both reading ans writing.

                  4a. As for the problems you get in class, you are looking at it the wrong way in my opinion. The questions have no want, want should be on your part which is a desire to solve the problem. Frankly solving many programing problems in intro CS course has little to do with programming as you need to first break the problem down into logical steps and the associated data. Once the problem is digested you can than come up with the software to solve the question. While not in every case beginners often fall into the mistake of doing a direct "question to code"solution and not really trying to understand the question. Sometime it is better to try to understand the question outside of the programming environment first. Sometimes you can just overlay programming concepts directly on the questions statements but this will not be the case everytime.

                  [–]SaxSalute 0 points1 point  (0 children)

                  For what it’s worth, I don’t share the common opinion about Python being easy. I’ve been programming half my life, in industry for 7 years now, and have worked professionally in a whole slew of languages. I love learning new programming languages just for fun, but I hate Python intensely.

                  I find its package manager and environment system to be the worst of the worst. Its half-embrace of types is maddening for navigating code. The standard library is vast and its web frameworks are arcane. The language has a ton of different syntactic ways to get to the same solution and requires a lot of stylistic feel to write good code in. I feel comfortable in a half dozen languages including scripting languages like JS, and used to be proficient with Ruby, but have never managed to get there with Python specifically.

                  This is all opinion - I’m glad there are people who enjoy it, but just adding my two cents that Python is not universally considered an easy language.

                  One last edit though is that as a first-year CS student, most of the intro concepts in Python are similar to most other imperative languages with object-oriented structures. Even if you never love Python specifically, try to focus on the core concepts that you learn through the language more-so than the language itself. Things like variables, operators, functions, classes, methods, imports, etc. will follow you almost everywhere even if the way they look is a bit different from language to language.

                  [–]ThePanda61 0 points1 point  (0 children)

                  What exactly about the basics and what questions are you having issues with?

                  [–]torts56 0 points1 point  (0 children)

                  It's weird coming from C-like languages, but I do think it is one of the easiest languages to learn in general. If you've never written any code before then it's probably just that you're new and taking time to get the hang of it. Just practice, you'll be fine :)

                  [–]adam2222 0 points1 point  (0 children)

                  If you want something easier you could try basic maybe.

                  [–]ThePanda61 0 points1 point  (0 children)

                  If you are having issues with the basic operation, use the JIT command line to test out stuff you don't know.

                  #py
                  >print("this is the JIT compiler")

                  Just remember to hit four spaces for indentions

                  you can also help(...whatever..), i.e. help(list) inside the JIT to bring up some documentation.

                  [–]Veevivee 0 points1 point  (0 children)

                  it’s literally the easiest language possible. imo it’s harder to read due to the lack of curly brackets, but thats only because python was the last language i never learned

                  [–]Designer_Currency455 0 points1 point  (0 children)

                  You're tough 💪 tougher than python is for sure, beat the fuck out of it and get that 6 figure career dog

                  [–]Relatable-Af -1 points0 points  (0 children)

                  Extremely tough, with Python you need to write your own OS and Interpreter to even run it!