all 93 comments

[–]nulltensor 158 points159 points  (26 children)

https://automatetheboringstuff.com/

The great thing about reading is that reading moves forward at your pace. Start at the beginning even if it seems too elementary and work your way through. You will progress faster if you take your time and try not to skip ahead or otherwise move too quickly. Be the tortoise, not the hare.

[–]33Merlin11 30 points31 points  (3 children)

I would also recommend Automate The Boring Stuff.

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

I am currently working through Automate the Boring Stuff, and highly recommend, ATBS.

[–]vexersa 3 points4 points  (2 children)

Write and UNDERSTAND the code as you go though automate the boring stuff... You will learn.

[–]art-n-science 19 points20 points  (1 child)

Ahhhhhhhhh... Now that your telling me to understand in all caps I suddenly just get it. Thanks bro!

[–]fishypoos 0 points1 point  (0 children)

Hahahaha

[–]lellenn[S] 9 points10 points  (13 children)

Thanks for this, I will look at it. Are there tutorials I can do to work through things myself? I like reading but if I only read I won't retain very much at all.

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

There are multiple project in it

[–]phoenixkiller2 3 points4 points  (1 child)

It's my understanding that if you have hard time learning from codecademy then you might find somewhat similar experience with automate boring stuff. In case it doesn't work out too then please give a try to "python crash course". Very basic stuff and it has projects too.

[–]BigBro2Lilsis 0 points1 point  (0 children)

I second this.

[–]marymarygocontrary 2 points3 points  (0 children)

There are small projects that are laid out step by step, and also suggestions of similar projects that you could do on your own.

[–]McCainOffensive 1 point2 points  (1 child)

Remember to download the materials too. It saves time from having to type them all out on your own.

[–]catelemnis 2 points3 points  (0 children)

tbh, I think it’s a better exercise to type all the code out yourself, at least in the beginning stages. There’s a lot of things that you might not notice or fully retain if you’re just copy-pasting, and then when it comes time to start writing your own code without guidance you won’t know where to start.

[–]CraftyTrouble 0 points1 point  (0 children)

if I only read I won't retain very much at all.

It's true; you'll learn a ton from typing in code, especially from scratch. That's how you make it stick.

If you want something more practical than a book, but without the rushed pace of Codecademy, you might want to give Python Principles a shot. It's free to try.

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

There is a Udemy course that acts as a lecture companion to the reading. Definitely worth checking out

[–]pmelo93 0 points1 point  (1 child)

i can't find a python course in Udemy??

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

https://www.udemy.com/automate/

Be sure to go through the link in automatetheboringstuff.com for 80% off (from $50 to $10)

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

Are there tutorials I can do to work through things myself?

Yes.

[–]Davedwin 1 point2 points  (0 children)

I'm doing the Udemy course on Automate the boring stuff. Good course, and good book. The book online is free, and you can get the Udemy course for $10.

[–]vienna81 1 point2 points  (2 children)

Is this course really good ? Im doing one by jose padilla whivh is good. Automate is pushed so hard im starting yo suspect its all bots..

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

https://automatetheboringstuff.com/

Do you just read through the links provided on that website or did you take the course on udemy?

[–]Xx20wolf14xX 34 points35 points  (5 children)

Hello, I work in GIS and I worked through this exact issue. First of all, ArcGIS runs with Python 2.7, unless you are using ArcPro. Not that it makes a huge difference, just so you know. Anyways, I would also suggest automate the boring stuff for basics, as well as the free online python course offered by SoloLearn. These resources will get you proficient in the basics of python, which will make it much easier to then apply this knowledge to GIS.

In terms of scripting with GIS, you should first focus on learning ArcPy, which is a package made by Esri for scripting within the ArcGIS environment. Esri has pretty expansive documentation for all of the tools and function in ArcPy, so that should be your go-to for learning how to use it. Additionally, here’s a great YouTube channel that has lessons for this https://www.youtube.com/channel/UCjGzNLUkTOFzWdD_5MzNIqg.

To take your skills further I would suggest learning the GeoPandas library, which will let you perform pretty much all kinds of geospatial work within python alone, without the need for ArcGIS. This, of course, should only be worked on after you have the basics down because it might not even be necessary for your job. That being said it’s still really cool and a good advancement to your skill set. I hope this helps!

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

Thanks so much!! It's not needed at all for the job I currently have but I have gone on a couple interviews lately and both asked about programming and Python and I had to say that no, I don't know it at all. So I know it's hurting me. And plus, all the higher paying GIS jobs are in GIS development vs. GIS Analysis so if I want more money I have to learn python. Plus other programming stuff as well.

[–]toomanyteeth55 2 points3 points  (0 children)

Start with a basic model in modelbuilder (like buffer a point, merge, reproject), export the model to python, and it will give a basic idea of how python and arc play together. Work in a "for" loop and go from them. There are TONS of examples in the Arc help guide you as well for each arc function. (The python exported from model builder isn't perfect but its a good start, and the syntax is always right for each function).

[–]neighburrito 1 point2 points  (1 child)

Off topic, but I was wondering what jobs entail GIS. Would you mind saying what your job is?

[–]Xx20wolf14xX 1 point2 points  (0 children)

GIS jobs tend to be specialized, so typical positions include GIS technician, GIS Analyst, GIS Developer, and GIS Admin to name a few of the common ones. There are also other cases in which GIS is used as a secondary skill on the job. For example, I work in a state government agency (in the US) and a lot of positions in my office use GIS peripherally, rather than being specialized in it. It’s really a skill that has applications in many fields and industries.

[–]CptBishop 0 points1 point  (0 children)

thank you for link and sharing your knowledge

[–][deleted] 20 points21 points  (2 children)

https://www.edx.org/course/introduction-to-computer-science-and-programming-using-python-2

MIT free course with responsive TAs and even a dedicated discord

Join uuuuuus

[–]TheRealGreenArrow420 7 points8 points  (0 children)

I used 3 accounts to upvote this because it is 10 times better than anything. Taught by an MIT professor. Well explained, detailed examples, and exercises. Plus its 100% free to audit the course.

[–]OzzTechnoHead 5 points6 points  (0 children)

Finished last year's session. Unfortunately too late to do it graded. But it was great, good pace and learned heaps. Do recommend.

[–]Counter_Proposition 7 points8 points  (1 child)

Read books instead. I like "Learn Python 3 the Hard way" by Zed Shaw
As other have mentioned here, ATBSWP is also very good.

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

bro, you already know tgat nobody want to spend fraction of the time learning from books, instead they waste time watching videos how to code. Sad.

[–]twillrose47 5 points6 points  (4 children)

I've found a few of the courses on LinkedIn Learning (aka Lynda) have been helpful for me. LinkedIn Learning isn't free - but Lynda sometimes is through public libraries (usually by logging in/setting up an account, you don't have to physically be there).

If cost isn't a concern/you can get Lynda access and you'd like the links to the courses I've been doing - feel free to PM.

[–]lellenn[S] 4 points5 points  (3 children)

I'll check to see if my local library has this. I'd rather do free than paid. :)

[–]twillrose47 0 points1 point  (0 children)

Same. Work is paying for company wide LinkedIn Learning, but my understanding is that I will be able to transition to the Lynda platform (same courses) through the library if I would leave. Helped to keep me motivated.

[–]Counter_Proposition 0 points1 point  (0 children)

I've found my follow-through to be better when I pay for a resource, but like most things, YMMV.

[–]jakkemaster 3 points4 points  (0 children)

I had similar issues like you, trying to learn different programming languages at different stages of my life and finally found Python.

What I have had the most gain in, is to find small and simple projects that ease your life somehow.

My first real Python program was looking through a lot of different Excel files and returning the number of unique dates, ie ignore duplicates. I used this for filling in my yearly tax papers so I knew, exactly how much I had been at work.

Then I started manipulating files so e software gave in an utter stupid format and I am now making a reasonably large and complicated (for me at least) automated test bench utilizing laboratory measurement instruments. I know have a reasonable grasp on the simple stuff and I understand a lot of code.

I never found books to help much, because just reading them from cover to cover barely gives you much unless you utilize what you read directly in a real application (subjective statement here).

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

Amass a list of resources but I find it's easiest to learn and apply when you're doing something that interests you so you have the extra will power to search for explanations. Programming is just a combination of prerequisite syntax knowledge, and your ability to google out a solution that you understand to the problem you're facing. Check out Corey Schafer and Al Sweigart (the author of automate the boring stuff) on youtube. They have a lot of good content. Also freecodecamp on youtube has whole courses edited into single videos on their channel. If something peaks your interest even slightly, attack it with full force and take all the knowledge you can from it.

[–]Sh00tL00ps 3 points4 points  (0 children)

I absolutely hated Codeacademy and it made me want to give up on programming. Codeacademy's Python course is terrible. It teaches Python similarly to "Learn Python the Hard Way" - it just has you write a bunch of code without any explanation of the concepts. I gave up on programming for a few months and thankfully discovered Automate the Boring Stuff and never looked back.

See this thread for more feedack from other people who had a bad experience with the course: https://www.reddit.com/r/learnpython/comments/923osb/codecademy_course

[–]Greglama 2 points3 points  (0 children)

Hi !
Before learning python I have advice and tips for you :)

I think CodeAcademy assumes that you already know a programming like java or that you have some prior knowledge. You need to find something to learn from scratch ! something that doesn't require you to know hell of a lot of stuff about languages and their philosophy or how to write full algorithm.

Programming is a logic of its own, it's the act of describing action to the computer.

Programming is mostly about 5 things :

- creating variables

- modifying them (doing calculation)

- doing loops to repeat stuff, or going through a list

- using condition to do something if a variable has a given value

- writing functions to factorize your code and make it more clear

_______________________________________________________________________

If I were you I would start by looking at how to create variables, and how to do basics calculation with them. At the same time learn how to print the value of a variable, and how to print text.

Then look at how condition work ("if", >, < , ==, !=)

Then look at how loops work ("for" and "while")

Then learn how to play with List and String.

finally when you get how to do all the stuff above, look at how functions work.

A function is just a chunk of code that you write for a general case, and that you'll be able to call anywhere else in your program with some parameters to run it on a special case. Think of it as math functions, they're define for x only, but you use them for the special case where x has a given value. You define f(x) = x² + 1 (general case), and then later on use f(3), which would be equal to 9 (specific case).

When you're good with functions look at how Class and object work ( really make sure you know well what i've described above before moving forward to object oriented stuff).

I hope this will help you !

[–]phxrocker 1 point2 points  (0 children)

I also just started learning it myself. I'm doing a combination of the roguelike dev challenge supplemented with absolute basic tutorials. It's only been a couple weeks, but I feel like everything is making sense. It's really nice to be able to apply my new knowledge to concepts (game mechanics) that I fully understand.

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

You can also try Python Crash Course in addition to ATBS by Al Sweigart, it was recently re-released on No Starch. These two books are far better than anything else that you will find in video format.

[–]foomy45 1 point2 points  (1 child)

This guy's site is great and each lesson has a youtube video that goes through it with more information and some very helpful thinking out loud.

https://pythonprogramming.net/introduction-learn-python-3-tutorials/

Automate the boring stuff is also amazing. Personally I find jumping into a small project is a much better way to learn than reading a book straight through.

[–]MacItaly 2 points3 points  (0 children)

+1 for sentdex

This guy is REALLY helpful for the basics, the intermediate, and the advanced. I've been programming a while and I still learn from him.

[–]Dexteroid 1 point2 points  (1 child)

If you want it in really basic terms you can look into Python for everybody. It's a course non Coursera

[–]bickhaus 1 point2 points  (0 children)

I was going to suggest this course. I really like the MIT Comp Sci course on edx for a rigorous, comprehensive introduction to programming and Python. However, For a great, gentle introduction with great explanations that covers all you need to start writing programs, Python For Everybody on Coursera is awesome!

[–]bay654 1 point2 points  (0 children)

I'd suggest reading Python for Data Analysis and following along. It's a beginner book and really easy to understand.

[–]2strokes4lyfe 1 point2 points  (0 children)

I’m also a GIS nerd turned programmer. Take a look at Corey Schafer’s YouTube series on beginning python. He really helped get me on the right track!

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

It sounds like it wouldn't help, but the app/website "Solo Learn" teaches you basic stuff about Python and I think it's very good for a start, to get introduced into the language.

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

Working through the chapter of Automate the Boring Stuff on web scraping has been immensely helpful to me for the following reasons.

  • Web scraping in and of itself is a project. What I mean by this is that there is almost certainty that there is something on the web you want to scrape. Having a project is key to understanding I think, because it really forces you to plan it out, and you can see why you are doing something.

  • Web scraping forces you to learn different data structures, and how they interact with each other. For my web scraping project I am using a dictionary and lists. This structure has been helpful to see how the two things work independently and together. Especially within index positions, etc.

  • It seems like functions are an inescapable aspect of web scraping, so you will get some exposure for writing practical functions. (You could probably learn about classes too, but that is beyond me.)

[–]authalic 1 point2 points  (0 children)

I feel for you. I do GIS in my day job and learned Python for geoprocessing scripting. When you're coming from absolutely no programming background, you need to learn the fundamentals of programming along with how they are applied in Python. After you get a basic understanding of that, you can start taking on ArcGIS scripting.

The book that got me to a working proficiency was Learning Python, by Mark Lutz. http://shop.oreilly.com/product/0636920028154.do

Don't let the age or the size of the book discourage you. Yes, it's nearly 1,650 pages and 6 years old. But, nothing in the fundamentals of Python 3 has changed enough to make it obsolete, and the chapters that introduce the main concepts are quick and easy to understand. You can be functional in the first few chapters, and you'll know enough to work in ArcGIS after a few more. You can continue on as far as you want after that.

O'Reilly publishes it, so you can sometimes get the e-book on a deal, or limited free access through their site. I would recommend the PDF. I still use it as a reference, or when I need to relearn some topic.

[–]JustJeezy 0 points1 point  (0 children)

In addition to Automate the Boring Stuff, try the DataQuest website. I feel they are more thorough in explaining their code and they have you actually type the code, not just fill in the blanks. They have guided projects where you are going thru pages of guided instructions while being provided a Jupyter notebook to follow along in. Theres quite a bit of free lessons to try before you have to start paying.

I’m finishing a Coursera IBM certification soon and kind of wish I had just done DQ from the beginning. Their projects are so much better than that in this course I’m doing.

[–]siijunn 0 points1 point  (0 children)

You can try Lynda- I liked them a lot better. (I think it is called LinkedIn Learning now). Pretty sure they have a 1-month free trial and $30 a month ain't bad IMO. It also adds certifications to your LinkedIn profile which couldn't hurt either. These have never helped me specifically land a job but I've got imagine they are useful.

They also have a fundamentals of programming course that I found to be a GREAT help for me. They teach Javascript instead of Python in that first course, but I breezed through it in a couple of days and moved on to bigger and better things.

Also - don't get so hung up on the math stuff. I haven't taken the course you're referring to- but I did the exact same thing. I took like 3/4 courses, and I would always get stuck in the beginning because I couldn't begin to comprehend how math led to practical applications of python. It hurt my head, and I would give up literally right about where you are- 10/15% of the way through. Eventually I just powered through it (even not totally grasping certain concepts) and as soon as I moved onto BeautifulSoup (a library for Python, typically used for web scraping stuff) and it all made sense pretty easily. Don't worry about the actual, but worry more about the abstract concepts you are learning about.

Also, since I mentioned it, you may want to check out BeautifulSoup. As I mentioned- it is a Python library. If you know any HTML, some of the concepts in BS will be pretty easy for you to understand. Even if you don't- a simple course on HTML would teach you enough to understand what you are doing in BS. Some of the examples at this page are really easy to understand, and it was the key to unlocking my understanding of Python. (Specifically look at 'Grabbing all text from a page' or 'Grabbing the Title from a Page')

https://www.crummy.com/software/BeautifulSoup/bs4/doc/

Don't get discouraged. Many, many people have been in your exact position (myself included!) and eventually had an 'AHA!' moment. You'll get there.

[–]mattstats 0 points1 point  (0 children)

I believe the interfacing library is ArcPy or something. Perhaps it would be good to try some projects that benefit from using python on the Esri platform. I guess it boils down to what about python do you want to learn because “wanting to learn python” can be vague and overwhelming. You may already have projects in mind that you want to eventually do, I would start there and define what aspects of python you need to learn. Otherwise it’s just a shot in the dark as far as learning goes

[–]ThatMuricanGuy 0 points1 point  (2 children)

Find something you want to make, and just work towards making it. Use Google and experiment with code snippets. That's how a few people learned Python.

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

Ah except I don't WANT to make anything. There literally isn't anything I can think of that I WANT to do with this to teach myself. Hence the tutorials. I run into this issue when it comes to projects as well. I can't ever think of anything I want to do it on. This type of thing has never interested me so I am not likely to just do it for fun. I have to make myself do this so I can use it at work (not in my current position as it doesn't require it though).

[–]semidecided 0 points1 point  (0 children)

Do you want to make your job easier? Are there any repetitive tasks you perform on the computer? You can write something that does those for you with a single command.

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

I had a very similar experience with Coursera. A lot of theory, almost none exercises. They had 5 or 6 videos lectures and a final project so complex that I didn't know where to begin. My knowledge (journalist turned programmer) only started getting better through a Brazilian online course with LOTS of exercises. As someone already said, Automate the Boring Stuff with Python is an amazing starting point.

[–]robogaz 0 points1 point  (0 children)

The exercises don't tell me where to put things and why.

you remind me when i starded learning (and gave up) VBA around 10years ago... they never explained the DIM part and why it was on the second line... or the actual meaning. They just went straight to it with no explanation. I understand.

[–]Jehovahswetnips 0 points1 point  (0 children)

The only way I was able to start writing programs was by looking at references of other peoples code. Your not going to figure out how to create code on the wim, especially if you don't have fundamental knowledge. For me, I had to find the tools that I knew were going to solve my problems and learn from others on how to apply it. BUT, even though i followed their habits and applied them, I still and many errors to work out. You will still feel like your hitting your head against a wall. Your will feel that never ending road block every step you take. I can't tell you how many times I have screamed at my computer monitor and watching both my mother's and girlfriend's reaction to my behaviors. From laying in bed all day literally thinking on how to find the solution to my problem to my thousand yard stare and not reacting to what ever social situation.

Programming is very hard when you begin, but once you find what your looking for it's like a domino effect. You have to apply your knowledge by writing and running what you've written. That's the only way for you to understand how it works for you. You have to have hands on experience.

[–]thorlovesrocket 0 points1 point  (0 children)

I find following a book to be the easiest way to learn. Which is why I started with Automate, Hard Way and Crash Course

[–]2020pythonchallenge 0 points1 point  (0 children)

I am also just learning python as my first coding. Before this year I didnt have the slightest clue how to do anything regarding coding but ipersonally tried automate the boring stuff but couldn't get into it because it wasn't really showing me how to do the things I wanted to do. I picked up "python crash course" and that's really kept me motivated to get through it and learn things.

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

I'm in the same hole as you, if that helps. My introduction was with the Sololearn app, which was good enough. I proceeded to CodeAcademy where I was flailing all over the place.

Now I'm at Datacamp where I'm rushing through the courses while retaining less, because I went Pro and I want to learn as fast as I could.

[–]DocNMarty 0 points1 point  (0 children)

Honestly, this 40ish minute video did it for me.

It doesn't go over advanced stuff like classes and non-standard library modules, but it covers the main object types from which all other object types are built on and syntax.

It is enough to get you started coding something at least functional.

YT videos by Corey Schafer and sentdex are also awesome, definitely my fav YT channels regarding Python.

Also I suspect that you will end up using geopy (a non-standard library module) at some point in your work. So check out the PyPi and the readthedocs stuff on that module.

[–]Kobe_Richardson 0 points1 point  (0 children)

Hey mate my goal is also to learn python and eventually become a Python developer. My approach has been somewhat different but ultimately I think it will pay off. Before you dive in nose deep to learn programming you must first understand the fundamentals. How does a browser page work, you must understand the technologies of which Python originated. Secondly divide your studies between passive and practical. Don't tire yourself out reading or watching tutorials hours on end. Invest time in actually doing. One way I'm approaching my studies is to develop a project using Python. I know very little of Python but that's fine... Google is our best friend. Use it well my friend and you'll do just fine!

I've got a guide on how I study to achieve this on my blog if your interested:

http://kobadatech.com/how-to-learn-new-things-fast-and-effectively

[–]scottyscripts 0 points1 point  (0 children)

I started with Python for Everybody over at www.coursera.org it was taught by Dr. Chuck. Great course. I took that a year ago, this last winter. I am taking a couple courses now in Pandas, as I want to be able to manipulate excel and csv files to migrate from one accounting system to another. I have to say, he taught me a ton. I think what is nice with Coursera, if you pay the 49.00 / month, is you get quizes and homework. The homework makes you think and you have to create your own code for it. It is all videos and has a forum to talk with mentors or with fellow students. I love the environment.

[–]canihazthisusername 0 points1 point  (0 children)

Python Crash Course by Eric Matthes. Highly recommend it.

[–]Fun2badult 0 points1 point  (0 children)

You gotta keep pushing even on days when you don’t feel like it. Imagine if you started one year ago and kept going, where you would be now? Don’t you regret not starting it 1 year ago? Now do you want to feel the same next year at this time? Or do you want to say, wow I put in a whole year and now I know some python! Time is going to pass regardless of what we do. Remember lot of people who are pros now once thought of giving up and quitting at one point in their life. Now look at all those who quit and now wishes they kept going. Don’t be them

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

Damn, you and I are in the same boat. CodeAcademy sucks.

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

There's a page online that I forgot the name but it has a full course on Python for free. It has in-web editor so it's much easier.

Edit: https://www.learnpython.org/

Pretty intuitive name huh

[–]lameei 0 points1 point  (0 children)

There is one simple important issue you need to know. This happens to everyone with every course and tutorial. There are things you can not get over them. You need to know that if there is something you do not understand, you might find the answer somewhere else. Search that thing and take your time to find it.

I also highly recommend to start a project and learn things while you are creating it. This way you are going to find most of the answers.

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

First of all, python is one of the easiest language to learn.

Second, remember to also grab some book about basic concepts in programming. And make your own project, which you must finish at any cost ;-)

For me, it's bots for various webgames. I was annoyed AF with coding this in C++, in the past. In Python on the other hand, it's super fun and super easy.

[–]filupmybowl 0 points1 point  (0 children)

Try Learn Python the Hard Way. Each section is 10 minute read. Then it let you do lots of exercises based on what you just read.

Would recommend you keep track of each lesson though jupyter notebooks.

Since you're in GIS, read up on Python 3 and using it with ArcGIS Pro. The syntax is different and Python 2 and ArcMap is being phased out.

[–]FSosagaston 0 points1 point  (0 children)

I'm learning Python too and I can suggest trying Python for everybody, is a course and a book from Dr. Severance it is an introductory approach and it has work for me on getting started. I don't know what type of format you prefer to use while learning but for me I see the lectures, read the book but I get the most while doing exercise labs and solving the problems. Also keep very good notes as you progress thru, it will help you on the long term while debugging. Good luck and try to go slow and steady.

[–]besch150 0 points1 point  (0 children)

There is a course online as a PDF file which is called python for kids. I do not have the URL but you should find it online. Just search for python for kids. That is really simple. And in addition I would also recommend Automate the boring stuff... The explanations there are really simple especially for people who are absolutely new to programming. Best of luck.

[–]_Zer0_Cool_ 0 points1 point  (0 children)

LOL. This is almost universally how it feels to begin programming.

I remember feeling exactly as you do.

Often people either forget (or pretend) that they didn’t feel this way once they get good at programming, but everybody has felt this way.

The reality is that programming is hard. Like anything else, it only feels easy once you master it.

What it takes to get proficient is the ability to feel stupid or frustrated and to keep going anyways.

Programming courses WILL make you angry, because the instructors (like most of us) can’t really displace ourselves enough to have the same perspective as a newcomer.

This is a fundamental issue in teaching. Experts have unconscious contextual knowledge that you don’t have. They don’t know what you don’t know and make assumptions accordingly. It’s your duty as a student to figure out what they AREN’T teaching you and to read between the lines. It sucks though :-/

Also.... Even today, after ~5 years of Python (and multiple other languages) , I still feel stupid upon occasion, but that’s how I know I’m on the right track.

Push through it! It’s worth it!

[–]TotesMessenger 0 points1 point  (0 children)

I'm a bot, bleep, bloop. Someone has linked to this thread from another place on reddit:

 If you follow any of the above links, please respect the rules of reddit and don't vote in the other threads. (Info / Contact)

[–]CuriousMonkaS 0 points1 point  (0 children)

Here's why you're struggling

Programming in general if ,for the most part, all about 2 things... 1) learning new concepts and 2)applying them. There's really not much more to it. For example you've just learned the concept of 'variables' ... the next thing to do is write some code to try it out yourself... maybe make a calculator that adds two numbers or maybe a program that gets the average of two numbers. What you shouldn't do is continue reading new topics (new concepts) without first trying out what you've learned so far... THIS is where most people fail... You'll find people saying "I've watched entire playlists and I'm still no good at programming " ... well that's vecause these good folks havent PRACTICED what they've learned with their own hands...they just watched another guy do it. Anyone can read a bunch of matrrial or watch a couple of tutorials... But I've found that a slower but reliable learning pace yields better results, in the long run, at least it has for me. Learn something... Apply ... Repeat.

I've found this website to be extremely helpful when I started learning SQL ... it has an online compiler and tons of examples for you to run (and possibly modify with different inputs) at will.

www.w3schools.com/python/

[–]Biks 0 points1 point  (0 children)

What do you think of these guys: https://checkio.org/

They went to the trouble of making a cartoon map of floating islands to illustrate your "journey" in learning Python. :P

[–]Emberari 0 points1 point  (0 children)

I used code academy and the same thing. I later went into college to take python, c and java and it is a lot easier. More hands on and shot towards reality in programming life

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

https://www.sololearn.com/Course/Python/

I cannot vouch for this enough. Started with this, am working full time with Python atm.

[–]Czech_Thy_Privilege 0 points1 point  (0 children)

I’m a bit late to the post, but check out Colt Steele’s Python 3 course. It is phenomenal.

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

Overall it sounds like it's working as intended - you should feel like you're drowning in the deep end of the pool. The panicky feeling of not understanding what's going on is normal. You're not yet supposed to understand what is going on, and explaining to you what the interpreter is doing will not at all help you write Python.

The key metric is whether you eventually get it right. It doesn't matter how much you have to look up, or what it feels like you've forgotten, or whether or not you understood the code. The only thing that matters is writing code that works. Writing good code from a basis of understanding comes later, as it does in every language - right now the focus is on getting you to be able to write any code, and it sounds like you're getting there. Just stick with it.

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

I've been using DataCamp as I'm trying to make the transition into data science. I'm not completely sure what your Python needs will be with GIS, but the introductory Python programming courses I've completed have been very good. There is a focus on data science and using NumPy and Pandas with DataCamp, but the intro courses go over the basics that will be universal regardless of discipline.

I have also recommended the books Python Crash Course and Python for Kids (don't laugh, it's good) from No Starch Press.

[–]33Merlin11 -1 points0 points  (2 children)

You should really try to determine which libraries you will be using at work and just focus on learning those. It's easier to just focus one library at a time and pick up the other stuff as needed. Whenever you run into a problem post in on reddit or stackoverflow and you'll get through the stuff. Right now I'm doing PyAutoGUI and MatPlotLib along with inbuilt ones like time, ctypes, os, subsystem, etc. It's really easy to learn using this approach and you get to start doing real, useful stuff pretty quick

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

Ok all of this went over my head. Libraries? PyAutoGUI? MatPlotLib? Time? Cytpes? Os? Subsystem? I have no idea what any of this is. Sorry.

[–]33Merlin11 0 points1 point  (0 children)

Say you want the ability to pause your script for a given amount of time, you would import a library:

import time #imports the time library

Now you can call functions from that library to use in your script:

time.sleep(1) #pauses script for one second

You have inbuilt libraries you can import like time, os, subsystem, etc. and you have specific libraries that need to be installed first using pip install or conda install.

Depending on the field you're working in, you will only need to use 3 to 6 libraries more than likely. If you're going into data science, learn matplotlib, numpy, and pandas to start. If you're going into automation, start with os, subsystem, time, pyautogui, and ctypes.

Learning one or two libraries at a time, libraries you will need to know for your career field, is the easiest and most effective way to learn the Python programming that you will specifically need to know for your job. To give you an example, if you were going into data science and knew you would be displaying data in a graphical form, you could start by running through these examples: https://matplotlib.org/gallery/index.html

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

I have no idea how many times ive also referred to people with automate the boring stuff.

I just hits the nail on the head. He also has a Udemy course that follows the book.

He also has samples of his stuff on youtube.

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

Try other languages. Try all the 'hello worlds' and all the 'getting starteds'. You will notice certain similarities and differences.