Learning path for procedural programmers and traditional DBAs

Hi,
I hope you are fine!!

Comming from the procedural programming world and the traditional relational databases, without things like rows of data (and almost everything else) being objects, having methods and properties, or becoming lists when read in a certain way, but remaining objects if done in a different way, and also not having the ability and knowledge to recognize and differentiate one from the other, it is becoming a bit hard for me to progress in a consistent way in the learning of Anvil (which is based on a modern programming paradigm, which is unfamiliar to me, and perhaps to other people in the same situation too)

So each time I face a new challenge involving something I’m not already familiar with, it becomes a struggle to figure it out and make it work, and most of the times it ends being a trial and error excercise. (which not necessarily ends in really learning the subject)
In summary, I spend more time trying to figure out error messages than building working things.

So, my call for help here is for those kind experienced Anvil programmers, and also proficient in modern programming solutions to suggest a learning path to easy the unavoidable pain/pleasure of learning a new tool (I’m talking about Anvil)

I have already taken a Python course and also an OO programming course, and I understand the concepts.
I’m also working with the Anvil tutorials, and reading the documentation.
But the truth is that it is a loooot of information to process, and when the moment of truth comes, it is not easy to put all thing together.

Any suggestions that make this unavoidable path smoother will be much appreciated!!
I understand that for someone that is already capable of seeing the blond woman wearing the red dress in The Matrix, could be a challenge to put himself in the place of a newby, but … I still have hope :wink:

Thank you very much!!!
Warm regards
Ricardo

P.S. I could ask ChatGPT, but I still prefer people over AI :smile:

1 Like

Hi rfernandez2007,

I wrote the tutorial at https://pythonanvil.com/ to help new users start from the very beginning with Anvil, without any previous experience with Python, or other programming background. My intention was to provide enough basic understanding and examples, that the official Anvil documentation would next be easily approachable. The tutorial is ~200 pages, and although maybe a bit basic for your needs, perhaps it will help fill in some gaps.

1 Like

@nickantonaccio 's site is a great place to start.

You really don’t even need to know oop or any Object paradigms to use Anvil, other than pythons “pythonic” coding style. (and maybe how scope works)

Once you learn pythons bare minimum types (List, dictionary, string, integer, float, function, class instantiated, etc.) and what they do, you will start to notice a pattern that people refer to as “pythonic”.

It’s really not that hard, and once you pick it up, you will find almost all of the interactions with any additional libraries uses the same basic style, so there are much fewer “edge cases” when you have to re-learn how to use something new.

That’s why python is so popular, and why Anvil uses it. Anyone who knows python already can just “pick it up and go”.

2 Likes

I’m from the same world, and honestly the learning curve takes time. Having good references can help, but there will still be times when you’ll struggle. For me it took a few years of Python programming before I started to write Pythonic code, and I still add new Pythonic idioms to my skill set all the time (it was years before I realized comprehensions were a thing). Then the switch to Anvil data tables from SQL was another learning curve that took a few years of asking on the forum before I started to think mostly in the Anvil way.

2 Likes

Hi,

@nickantonaccio @ianb
Thank you very much for your kind and helpful answers!!!
I already have nick’s course in my to-study list (but as he said it is a little bit long so I haven’t started yet) But, I will do soon, and I’m sure it will certainly fill a lot of gaps!!

@jshaffstall
I’m glad to hear we share a common background, and the fact that you made it, gives me hope.

Thank you very much for your support!!!
Warm regards
Ricardo

Before I started with Python and Anvil, I was using C/C++ and Oracle/SQLite/ISAM for desktop development. You’re in good company. The differences are manageable, but may take a little while to sift through. Give yourself the time. It’s worth it!

Python is, by and large, a procedural language, so that part should fit okay. Searching a database and getting back simple, native Python types (a list of dicts) was a bit new, but lists and dicts were not. That aspect was okay.

Not having SQL to do the bulk of the database work, that took some time to work through.

Having the app solidly split between Client (browser) and Server (remote), with no shared memory between the app’s front and back ends, that was entirely new. In most instances, the back end runs only on demand, and then only on call from the Client. (And can’t call the Client back for information!) That one-way street required serious re-thinking of program architecture and design habits.

1 Like

Thank you Phil!,
I’m trying to enter that state of mind (in which you can give yourself the time to learn, instead of wanting to do everything right now :grin:)
It’s a good piece of advice!

Warm regards!!
Ricardo