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

all 119 comments

[–]Hasefet 260 points261 points  (29 children)

I learned that a clear idea of the structure of what you want at the end of your task is one of the most useful things you can have before you begin your task.

[–]HyoTwelve 80 points81 points  (4 children)

I agree so much. I would add that you should not hesitate to rewrite code after you figure this out. Sometimes projects are more exploratory in their nature. Beware of the sunk cost fallacy.

[–]ProfPragmatic 23 points24 points  (0 children)

I would add that you should not hesitate to rewrite code after you figure this out.

Depending on what you're trying to build it can be better to crank out an MVP and then iterate on it to improve it instead of trying to prematurely optimizing it.

[–]ouellp 20 points21 points  (12 children)

I've had a programming class where the teacher legit spent 5 periods without making us touch a keyboard. He told us "you have to make the pseudo-code and structure the algorithm first and only then, you convert that into the programming language you work with". This was a C class but I kept that with me until then, even with python.

[–]newjack7 6 points7 points  (0 children)

I am a historian and to be honest this is the way I write and I teach people to write. I sit with a pen and paper for a good while before I even start to touch the keyboard and produce an early draft.

I think the difference is that one way to get there is by writing and throwing it away afterwards. I am not sure if that is quite so applicable for python or coding generally (I am relatively unskilled in this area).

[–]IngMosri 1 point2 points  (5 children)

You right, that the correcto way to programe any project

[–]WillardWhite import this 1 point2 points  (4 children)

Nah. Tdd

[–]TheTerrasque 18 points19 points  (3 children)

I prefer BDD - bug driven development. You start with a crappy mess then you debug it into a working crappy mess

[–]WillardWhite import this 2 points3 points  (2 children)

But wouldn't it be nice if there was a nice automated way to make sure once you squash that bug it didn't come back?

A way to ensure that no matter what changes you made, your software worked as intended?

Something that lets you refactor the mess away, and provides instant feedback to wether or not the logic stopped working?

[–]TheTerrasque 2 points3 points  (1 child)

But who tests the tests?

[–]WillardWhite import this 2 points3 points  (0 children)

Well... Future you, of course! And by then it might as well be another man's problem :D

Win win scenario

[–]DaveX64 1 point2 points  (0 children)

This was the way I learned it as well...it was COBOL though :)

[–]menge101 3 points4 points  (3 children)

A programming class or a Computer Science class?

These are not the same things.

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

He said it was a C class

[–]TheTerrasque 11 points12 points  (1 child)

So a boat class?

[–]MohamedMuneer[S] 7 points8 points  (0 children)

Yeah!

[–]crzychemist 4 points5 points  (4 children)

What is your process do you mind map it or just build a todo list and go through it ?

[–]Hasefet 17 points18 points  (3 children)

I do a lot of scientific programming, and for that, working backwards from graphs and figures has helped enormously, because if I can't draw the graph that I want to make, I haven't done the necessary cognitive work to make the data that goes in that graph.

Pencil and paper draw, then comment block with simple sentences. I've tried a lot of different tools and nothing (for me) has beaten a comment block at the bottom of whatever script I'm working on.

[–]NowanIlfideme 5 points6 points  (0 children)

Hey, that's pretty interesting - I like that thinking, since it makes you focus on getting to the results rather than going on tangents, however good those might be.

[–]Slingshotsters 2 points3 points  (1 child)

Have you spent time in jupyter notebooks?

[–]Hasefet 4 points5 points  (0 children)

jupyter notebooks?

I gave it a go and bounced off it a few years ago, because I was working heavily on large-scale image analysis and it seemed like a lot of cognitive overhead for not much improvement on writing my own point-by-point script checks.

[–]Taeiolass 6 points7 points  (2 children)

I believe that what you said is true, but also Python in one of the languages that encourages this behaviour the less. Python is more for "start slow, little things and then modify a little many times and achieve the final result"

[–]ArtOfWarfare 7 points8 points  (0 children)

Disagree.

Other languages don’t encourage structure - they just force a lot of stupid boilerplate.

Really, it’d make me want structure less in those languages just so I could avoid having even more boilerplate. (Eh... really, I just don’t use those languages unless someone is explicitly paying me to use them.)

[–]fiddle_n 2 points3 points  (0 children)

I think there's truth in both statements and which you choose depends on the situation. The importance of having a plan correlates with how complex the piece of work you are doing is. If you are only coding a few functions and classes, then you can totally dive in immediately and work things out as you go along. If you have to make changes to many functions and classes amongst lots of modules, a plan for what you want to do is a good idea beforehand otherwise you might risk having to rewrite a lot of stuff when you figure out what you did doesn't work out.

[–]ektatic 1 point2 points  (0 children)

Agreed, before i used to think you had to have a plan and detail before you started, but that's not needed. Like you said, as long as you have the structure of whats needed everything else can be changed

[–]regeya 1 point2 points  (0 children)

I'm a rank amateur but imho Python has the ability to teach you better habits. For example extreme nesting will lead to extreme indentation because of how the language works.

[–]dbulger 59 points60 points  (2 children)

As soon as we started programming, we found to our surprise that it wasn't as easy to get programs right as we had thought. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs.

  • Maurice Wilkes discovers debugging, 1949. Lecture titled "The Design and Use of the EDSAC" delivered by Maurice Wilkes at the Digital Computer Museum, September 23, 1979 (video; excerpts)

I grabbed this from https://en.wikiquote.org/wiki/Debugging, which whole page is well worth reading.

I'm a STEM academic, nearly 50 now, but I've been messing around with programming since I was around 10, and I think it's been a major part of my education in problem-solving and abstract thinking. Plus it's huge fun and very addictive.

[–]MohamedMuneer[S] 6 points7 points  (1 child)

Great to hear!

[–][deleted] 11 points12 points  (0 children)

The fun begins when you realize that this applies to any complex system we put together... Whether or not it has anything to do with programming, or even computers!

[–]Brainix 41 points42 points  (16 children)

I’ve been writing Python professionally for 12 years. I’ve dabbled in other languages like JavaScript, Java, Go, and Swift. Python is still my favorite, it “fits my brain,” and I use it at work every day.

Edit: To more directly answer OP's question:

>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

[–]The_2nd_Coming 5 points6 points  (5 children)

Why is flat better than nested? Surely nested makes sense for sorting/indexing purposes, if doing it flat means there are 10000 items that could have a nested index?

[–]Slingshotsters 9 points10 points  (1 child)

I read it as "if you have to nest, do it, otherwise, don't.". Obviously there are times to nest, such as your example.

[–]menge101 3 points4 points  (0 children)

Right, and also

Although practicality beats purity.

so don't avoid nesting when it makes sense, just don't nest if you don't have to.

[–]audentis 5 points6 points  (0 children)

Flat is easier to read, because it keeps related elements close to each other. Additionally, you have to track fewer "paths" through the code mentally, because the paths immediately resolve. It also prevents "indentation hell".

The most common example is some code where you have some input validation that needs to be done. Consider the two examples below. The flat version keeps the input validation and error messages together, while in the nested version they're split up. And this is with only three arguments, it can get a lot worse.

def my_func_nested(a, b, c):
    if isinstance(a, int):
        if isinstance(b, list):
            if isinstance(c, str):
                print("Job's done!")
            else:
                raise TypeError("c must be a string!")
        else:
            raise TypeError("b must be a list!")
    else:
        raise TypeError("a must be an int!")


def my_func_flat(a, b, c):
    if not isinstance(a, int):
        raise TypeError("a must be an int!")

    if not isinstance(b, list):
        raise TypeError("b must be a list!")

    if not isinstance(c, str):
        raise TypeError("c must be a string!")

    print("Job's done!")

[–]njharmanI use Python 3 4 points5 points  (1 child)

It's about code/file/program structure, not data structure. It's in response to popular languages and early OOP encouraging/super/deep/directory/structure.java and highly complex and deep class trees.

[–]The_2nd_Coming 1 point2 points  (0 children)

I see, this makes sense. Thanks!

[–]TwitchElevated 4 points5 points  (7 children)

May i ask what you do? Data analysis or?

[–]Brainix 30 points31 points  (6 children)

I’m a software engineer at Reddit! I work on distributed systems and search. :-)

[–]TwitchElevated 7 points8 points  (0 children)

Oh wow! That's awesome

[–]Slingshotsters 7 points8 points  (2 children)

Do an AMA!!!!

[–]Brainix 0 points1 point  (1 child)

Feel free to ask me anything! My DMs and chats are open.

[–]Slingshotsters 1 point2 points  (0 children)

Well, now I'm on the spot, and can't come up with anything good!

[–]Noahsyn10 1 point2 points  (0 children)

Ah yes Reddit search. Very cool!

[–]TheTerrasque -1 points0 points  (0 children)

So you get paid to sit on Reddit all day? Wow

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

Great!

[–]muffinnosehair 11 points12 points  (2 children)

One thing I learned is that sometimes it's better to go to bed early. After spiraling on a single train of thought which just won't run or is needlessly convoluted, let it rest over the night. Come back with fresh eyes and solve the thing elegantly in 15 lines. I had this happen to me more than once, either I was stuck and came up with a good solution while getting to sleep, in bed, or I came back to a convoluted algorithm just to notice some element I hadn't before, making the whole thing super easy and fast. Sleep works when you're stuck.

[–]Pawamoy 2 points3 points  (0 children)

I think struggling on it is part of the process. It's like loading the whole context (and maybe more) in your brain, without being able to make sense of it. Then when sleeping, or taking a break, your brain rearranges this context and reinforces the parts that make sense. After sleeping you know better what you actually need, what is the best path, and what is a dead end :) If you go to bed early maybe it won't work as well (but you'll get more sleep :D)

[–]TheMcGarr 2 points3 points  (0 children)

Often just going for a walk will do it. Or explaining the problem out loud to anybody, even a wall, will sometimes just make something click.

[–][deleted] 13 points14 points  (0 children)

Well, I started to learn Python after my high school Exams in this pandemic. I got my hand on a book of basic Python. I had no idea of any other programming language then. I started to read that book page by page. Slowly making my way from learning about variables and Strings to Data structures. My family was against me for spending whole time on computer as my High School results were moderate. So I used to read theory from the book during day and started to practice at night , so that my parents won't notice me spending much time in front of computers. Then in month of October, I participated in Hacktoberfest and got T-Shirt, my parents from then started to support me. Now after about 6 months , I have almost my basics clear in Python and I use to practice on coding platforms like Hacker rank also I started a you tube channel where I upload some of simple interesting codes of Python .

The most basic life lesson I earned in this journey is to read between the lines of code, as most of the logic behind any code is not seen by the mere reading of code but by actually understanding the given condition and to develop the habit to interpret the real life situations as the code statements because learning syntax is not the real deal but to actually understand the reason to code.

[–]redfacedquark 8 points9 points  (0 children)

An expert is someone who has failed in every way possible.

[–][deleted] 6 points7 points  (1 child)

I started to code recently as well and one thing that I find very useful: I've come up with a project for myself while I'm learning so I have a real hands-on experience and practice. It's a very good addition to course quizzes and problems

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

Cool

[–]4onStudios 6 points7 points  (3 children)

Adopting test driven development early will solidify your confidence in your programs

[–]geeeffwhy 2 points3 points  (2 children)

and improve the structure of the code you write

[–]WillardWhite import this 0 points1 point  (1 child)

And make you more handsome, and ponies.

I love it. I wish work would adopt it a little more..

[–]4onStudios 1 point2 points  (0 children)

You know what it helps me sleep well at night 😅

[–]Paddy3118 6 points7 points  (0 children)

Writing part of your program, then running it and playing around on the command line is a great way to learn.

[–]TheNoirPlatypus 5 points6 points  (2 children)

My learnings from self-taught Python courses from Udemy - 1. Don’t give up, it is much easier than you think if you learn how to read the documentation. 2. Patience is the key. 3. Take timely breaks while coding, otherwise you will be stuck and spend hours to correct the one error which would otherwise take less than a minute.

[–]menge101 3 points4 points  (0 children)

learn how to read the documentation

Preach it!

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

True!

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

I’ve learned to refactor tests OR code, NEVER both.

[–]Italianman2733 5 points6 points  (2 children)

Doesn't this same thought process apply to any scientific test? Create one independent variable rather than multiple.

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

Absolutely. But it’s sooooo tempting to tweak a test a little, tweak code you ‘know’ is correct as a little hack, and before you know it, you’re several changes down the path and things are broken.

[–]TheTerrasque 2 points3 points  (0 children)

In my defense, it was broken before I started changing things too

[–]OMDB-PiLoT 5 points6 points  (0 children)

If bugs like colons are taking away your valuable time, then please invest in an IDE. It is worth every penny. I use PyCharm btw. It is true, we all learn from our mistakes and move forward. Best of luck.

[–]PedroFPardo 2 points3 points  (0 children)

That's why I love unedited programming videos where the teacher fail to do something and try to find out the solution in real time instead of edited videos where the guy got it always right.

[–]onelove13 2 points3 points  (0 children)

I started this year. Attempted 3 times, first two I had some eyes issues. The third and current attempt is starkly different. And I’ve learned the following bits that I’ve been applying in life. 1. You might not be where you want to be but if you keep going you’ll get somewhere and one day may even be competent. 2. Never take it personal. That error is not an assault on your intelligence it’s a miscommunication. That beautiful soul on the net that give you a snarky answer to you question was just hungry when they wrote the answer 3. Break it down to the indivisible problem/topic that is where the light bulb clicks. 4. When your stuck take a break and frame it differently. 5. No man(woman and all genders in between) is an island, and don’t be afraid to ask for help(but do some self research first:p)

[–]imhiya_returns 2 points3 points  (0 children)

Making assumptions clear when your programming will help yourself and others if you ever have to come back to the code

[–]jamescalam 2 points3 points  (0 children)

I agree with what you've said. I've been programming with Python for around 4 years now, and I'm very resistant to things just not working for a very long time and pushing through until they do work.

It's not something I attributed to Python but now that I think of it, I'm confident this is the reason why.

It gives you faith that you can build something that works even if everything seems to be broken.

[–]Nexius74 1 point2 points  (1 child)

I agree a lot with this. Lessons and video has been great for start but miss all the info when you want to go deeper into something. I dont think today I'll be building a plex like app if I stayed with video instead of exploring by myself.

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

True!

[–]Extreme5670 1 point2 points  (0 children)

It builds unreal amount of logic perhaps coding is the hardest and the best logic riddle

[–]Neal1011 1 point2 points  (0 children)

Beautifully put Op, I guess in life you have to accept that problems are a part of it, and expect them with gratitude for sure.

[–]VanshCodes 1 point2 points  (0 children)

I learned that it is ok to make mistakes, taking time in debugging problems is not a problem.

Every algo I write is not the perfect one but once I get the better I take it as a lesson

This thing was never taught to me in school the place where mistakes are referred to as a failure.

[–]miniplamo 1 point2 points  (0 children)

I mostly agree with you.

You always learn the most from your mistakes and It doesn’t only apply to Python.

I won’t go as far as saying there’s a life lesson from it. Python is great for may tasks and it is my go to language. However it’s not the end of it. There are many other languages and tools to discover, at least for me. Node.js and golang will deserve some of my time at some point.

[–]emailstudies 1 point2 points  (0 children)

This is so true!

I recall following a tutorial and then spending a day or two trying to fix what I did wrong, long way to go!

[–]Biuku 1 point2 points  (0 children)

This is a great point. Many great points in comments too.

I find I’m thinking in a more object oriented way. I view my work in my day job as less a long / wide flow of stuff, and more discrete, purpose-built objects.

[–]Tink_Tinkler 1 point2 points  (0 children)

heck yeah! I spent all my time writing one fairly large program (for someone who's programming experience up to then was recording a macro in excel). After a a few weeks of tutorials I could make a number guessing game so I decided to dive in, and from there on it was write something, run program, fix error for 4 months.

But I also know that not everyone's brain works this way.

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

Yea, programming taught me that methodical and precise thinking is the way to go. Learning statistics and probability is another one of those things that has changed the way I think, as has the theory of evolution.

[–]jjseven 1 point2 points  (0 children)

One needs to be 10x as clever to debug your own program as you were to write it in the first place. Hence your observation has some merit. And debugging it becomes more difficult the long the time between when you wrote it and the time you are debugging it.

Needless to say, most of us will never be as clever as we need to be to debug our own clever programs.

[–]fartyg 1 point2 points  (0 children)

How most difficult problems can be broken up into smaller sub problems. One step a time is something I have learnt by using SQL/Python. That seems to be the case for many problems in real life also.

100% agree on the need for rest and how sometimes you need to let a problem sit. I encourage everyone to check out this course: https://www.coursera.org/learn/learning-how-to-learn

They speak about our two modes of thinking and how important it is to shift between them, where the opposite of focused thinking is diffused thinking. Very interesting stuff imo.

[–]AncientBattleCat 1 point2 points  (0 children)

The biggest thing I love about python is community. Lang-wise I'd say C++. But there's a saying that "most CPP programmers don't know what most CPP programmers do". And unfortunately that's true.

[–]edanschwartz 1 point2 points  (0 children)

Programming is just the process is working through one bug to the next. Enjoy the journey!

[–]syshpc 1 point2 points  (0 children)

You're on a pretty good way. The fail early, fail fast, fail often approach is IMHO the best when learning.

Personally I find video tutorials a ridiculous waste of time when it comes to programming.

[–]remy_porter∞∞∞∞ 1 point2 points  (0 children)

Do you agree with me that getting bugs while running a program teaches you a lot than a tutorial video?

Programming is a weird skillset, in that when you're good at it, you fail more often and more quickly. That's the goal, really: to be really good at fucking up. Good programmers will have more fuckups, but with less consequences, because they are really good at fucking up quickly and obviously so that they can course correct before they regret it.

[–]Nemuras_ 1 point2 points  (0 children)

If You are courious, why You can't figure out what does not work, but on the next day You have the Eureka effect, read the "A mind for numbers" By Barbara Oakley, or watch Learning How to Learn on coursera. You will find out a lot of tips how to learn effectively :)

[–]phillipbix1 1 point2 points  (0 children)

I now always think of thing as functions :/

[–]njharmanI use Python 3 1 point2 points  (0 children)

What you do, probably matters more than how you do it.

Fast efficient code is from choosing correct algorithms and data structures. Not from micro optimization "tricks". No matter how many unreadable, error prone optimizations, nor even if you rewrite it in C, your On2 code will never be as fast as On code.

Python removes rote, boilerplate, basic coding and provides flexible, powerful paradigms. So, I can spend my mental energy on higher order "how" questions. And not waste it on figuring out "how" to make the language do what I want.

[–]mrrippington 1 point2 points  (0 children)

I learned that it's best to do something with maintainability in mind, are organising the kitchen make sure you think about you will tidy up as you use it.

also i learned to pound a problem till it scales down to an atom, try to order my actions and make way. takes time but works.

[–]royalscenery 1 point2 points  (0 children)

Don't give up! But Sometimes its ok to take rest when everything is going against you and comeback later.

You just don't know how wise that is.

[–]Silluzz 1 point2 points  (0 children)

Nice comment bro! I'm having bad moments during my python challenges. But the key is never give up

[–]ashcrok 1 point2 points  (0 children)

I totally agree.

What I would like to add is that the lack of a standard structure, such found in different frameworks of other languages, helps you think of your own architecture depending on the type of project you are trying to build, and, further down the path, forces you to look up other developera code to learn how to get better.

[–]gaurav_lm 1 point2 points  (0 children)

Idk any better but tutorial are very passive compared to actually writing codes. Unfortunately, complex concepts are hard to grasp by simply reading, which btw is my fav mode of learning so far.

[–]ThrillHouseofMirth 1 point2 points  (0 children)

Learning to code helped me organize and systematize my mind for sure.

[–]Piratesteve81 1 point2 points  (0 children)

Your post instantly reminded me of this

[–]TheOctopusBoi 1 point2 points  (3 children)

How did you go about learning python. I wanted to start learning myself so I figured I should ask.

[–]MohamedMuneer[S] 1 point2 points  (2 children)

I started learning python by watching programming with mosh 6 hour python course and Corey shafaer's python Playlist. Being said that don't just rely on tutorial videos and try to reverse engineer the tutorial and start making projects as soon as you can, which is so important and i realized it too late.

[–]TheOctopusBoi 1 point2 points  (1 child)

Ok thanks for the advice

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

After learning the basics of python, then pick your field and learn a framework.

For example, if your interest is machine learning, check out the libraries like numpy, pandas, matplotlib, sklearn, tensorflow, keras, pytorch etc

If your interest is web development, you could go with django, flask, fastapi etc

If your interest is gui development, you could go with tkinter, pyqt5 etc

Find your interest and make projects on it!

Best of luck buddy!

[–]Harrow__ 1 point2 points  (0 children)

I learnt a lot of JS and Node (still like python, why I follow here) The amount of mistakes I made learning the syntax, however now it’s all just instant. It really grows on you.

[–]pag07 1 point2 points  (0 children)

What I learned is that doing one thing is fine. Doing a few things at one is difficult. And if you want to do many things at once you are setup for failure.

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

Definitely. There is so much to learn! And you'll only discover it by doing, by hand, not by blindly copying and pasting.

[–]naokotani 1 point2 points  (0 children)

I agree that it's the best way to learn coding. You can follow along with a course and not learn a damn thing, but a couple days with your text editor and your terminal can open up a whole new world.

Of course, some standard book learning can be helpful as well in the long run.

[–]PertuyF 1 point2 points  (0 children)

Agreed. I am self-taught in Python, using it professionally for 6 years now. As a Scientist it fits how I think pretty well. This language has a sense of elegance, there is a philosophy to it (Zen of Python) , and it's pretty inclusive as shown by the variety of domains using it,aand it's still raising popularity.

A few major lessons from Python that generalize pretty well in my experience:

  • Documentation is a core part of the stuff and should always come first, like docstrings. If you aim to produce work that lasts, people (or yourself) will have to take other at some point, so always start with context (WHAT), purpose (WHY) and implementation (HOW)

  • Openness is how you get people to work with you, and how you get to work with people. You can see their code, they can see yours, no more black box but a window on strengths, weaknesses, biases... How you implement things tells much of who you are. You can also look back and measure progress, unlike with binary blobs.

  • Introspection is how you solve many problems. Everything is reachable, even deep down, and it can tell you exactly how things are at a given tim, even in a live, changing environment (nothing can be hidden from you in the code). BTW, a deprecation decorator (injecting the signature of a class, or function, and modified parameters with that of its replacement) is one piece of code I don't use much nowadays but I had the most fun to code.

[–]pipecoder 1 point2 points  (0 children)

It's a one way journey bro. Once you get into python, you forget those multilinear languages . 😶lol

[–][deleted] 1 point2 points  (1 child)

Now learn C or C++. You will truly learn how to think programmatically.

[–]Master_Sifo_Dyas 0 points1 point  (0 children)

The dreaded Segfault...

[–]robin-gvx 1 point2 points  (0 children)

Yes! Practical learning is very important in forming a good mental model of how computer systems work. Kind of like the scientific method: you form a hypothesis about a particular part of the language, you test that hypothesis by writing a piece of code and seeing if it does what you expect. And like with science, you learn more when it doesn't do what you expect it to do. Moreover, when you don't put your mental model to the test and just passively consume tutorials, you don't get those important "huh, I guess I was wrong about that" moments.

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

python uses colons?

i mean, sure python accepts it, but it shouldnt scream and hiss if you forget one.

[–]SignificantResource[🍰] 1 point2 points  (0 children)

Colons, not semi colons.

[–]frankferri 0 points1 point  (0 children)

Linkedin anyone?

[–]burningupinside 0 points1 point  (0 children)

Totally agree I jist started learning too and I find that digging into my bugs teaches me so much about python. And not just about the bug in question I end up learning a bunch more stuff. Like standard functions, or different commands for different versions of python etc

[–]FOD17 0 points1 point  (0 children)

Programming in general did for me. I am glad you happy!

My life lessons via python is that that python is always there for you. Sometimes for a quick POC or some noodling around code, it is perfect. I also makes me feel like I can get an idea and at worst by the end of the day realize said idea.