--
You received this message because you are subscribed to the Google Groups "py4web" group.
To unsubscribe from this group and stop receiving emails from it, send an email to py4web+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/py4web/f79d49e9-4f74-4a62-a23d-bfd0fb1c56efo%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "py4web" group.
To unsubscribe from this group and stop receiving emails from it, send an email to py4web+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/py4web/2aa13457-3bf0-4c17-a40d-44e71cdc7a66n%40googlegroups.com.
Tom,
As someone who has just gone through this exercise as a python novice with no web experience, I can give you some good insight. I am however an experienced developer but not in these languages. The first thing that strikes you is the sheer amount of knowledge and languages that you need to know. (HTML, CSS, JQuery(javascript), Bootstrap or Bulma, Python, and then how the whole framework actually passes stuff around, its anomalies, its gotchas…) not to even mention Git, Basic Linux, VirtualEnv, Nginx, Gunicorn… and then of course SQL.
I have done development in a lot of languages and learned them really fast but web programming has been the hardest in terms of the volume of stuff and all the cogs that you need to know.
The Django tutorial and format that helped me the most was the Django Girls Tutorial, https://tutorial.djangogirls.org/en/, which really helped me to get a good understanding of all the technologies and concepts.
Just wanted to say, that coming from Django - I love web2py! and py4web! especially as I can quickly deploy it anywhere and get someone else working on it so easily. The Ticketing system, backwards compatibility, auto migrations and not relying on modules that break when they get updated are huge for me. I develop simple CRUD based applications used in manufacturing and industrial automation. So, I don’t need all the bells and whistles but want future predictability.
Anyway, here are my suggestions for a tutorial, as
someone who has freshly learned these frameworks.
1. I would get them started using something that is common to all OS’s,
like the inbuilt IDE, so you don’t have to have each version and as you say update
images as the IDE’s change.
2. With the IDE, I would separate that from learning the actual code. Certainly, have a step to set it up and use the inbuilt IDE, but that should be decoupled from the exercises. With perhaps other steps to setup each type of IDE, PyCharm, VS, Notepad++ but that really isn’t the focus here.
3. I really like Massimo’s idea of using visual studio and the inbuilt CLI
4. I would include steps using basic git to push/pull straight off
5. I really liked the format of the Django girl’s tutorial, and that is why I chose Django first up, (https://tutorial.djangogirls.org/en/) because they get you started on PythonAnywhere, with Git straight up and you can see a clear path to actually launching your app amongst the overwhelming amount of stuff to learn.
6. Start with the fundamentals and get them to type in exercises to really understand: request, response, Controllers, Views and HTML basics. I struggled at first understanding these concepts, particularly with using the request... In code and understanding where they come from. I found myself learning by simply printing it to the page and then checking, so this would be good. The web2py book and py4web docs are good, however the snippets lack the larger context for absolute beginners. I often found myself reading though the book, but not getting detailed info about things. I would love to have a link on say, request, and response that took you to the definition and flow charts about how data flows, and what you can and can't get out of it. I guess this is where the glossary comes in?
7. Even simple things like I would look at an example on other sites, but not know that the javascript needs to be in a <SCRIPT> tag.
8. With respect, the one thing I struggled with a bit in the PyDAL book was that there was overwhelming choice in the query format. You can do it this way, and this way and that way… (Which is great), but what I needed at the time, was just an easy to remember way of getting records using SQL terminology and explaining simply that db(<where clause>).select(<select clause>)…
9. I would also love to see a step by step on a best practice production workflow, i.e. develop locally, push to git test, pull to test server on PythonAnywhere, then pull to production server. (cover off on how the database should be handled with migrations etc.)
The takeaway, is that py4web is just one cog in a whole eco system of stuff that novices need to understand to start developing.
For those that are interested, what follows is my experience of NOT finding web2py, and how I got here.
A year or so ago I needed to create a web application, but didn’t know where to start, a friend was using rails and there were many tutorials, so I started there. I was an old hat at c++ development but I found that I was too impatient to learn ruby and as soon as I wanted to do something outside of the scaffolding I didn’t have the depth of knowledge of rails and ruby to easily do what I wanted and got frustrated by the magic that I didn’t understand.
That and I wanted to learn python, (for fintech and AI), so I searched around, maybe I didn’t see web2py or maybe it got washed out in the noise of other python frameworks “below” the popularity of Django, but I switched to Django. This went well initially but I struggled with deployment after using Cookiecutter Django and frustrating times trying to deploy to live servers when the migrations throw all sorts of errors. …
(I'm still trying to forget the number of hours I wasted on getting Django to run under Gunicorn and Nginx and the pesky migrations... ;( I ended up paying someone to deploy it into production, it was beyond me. Maybe that reflects more on me, but I'm impatient and just want to get things working.
After about a year of not touching it, I went back to do some changes and found myself getting anxious about Django Migrations that had caused me so much grief before, especially on a live site. So, about a month ago I found web2py, and immediately took to it. Its lovely. Took me about 2 days of playing through the book and I started and almost finished two new simple applications within about a week. I was seriously impressed.
Then I discovered py4web and thought wow this is even better because its simpler and faster. So I started porting my apps, but I had a hard time adjusting to Vue and the new concept of a single page app and struggled with a few teething issues getting basic crud working with Publisher.grid.
So, I went back to web2py and just got it done and launched. (I am looking forward to using py4web in the future, but web2py hits the sweet spot for me now.)
Regards,
Richard.
Andrew, I'm slowly putting together an approach very similar to what you've outlined. The reason it's so slow is that while writing the tutorials I'm going from first principles and carefully documenting the many wonderful, but original, features of py4web as I go. A lot of that work shows up in the glossary here: https://github.com/tomcam/py4webcasts/blob/master/docs/glossary.md. Creating short, clear, accurate entries for things like PyDAL(https://github.com/tomcam/py4webcasts/blob/master/docs/glossary.md#pydal), DAL (https://github.com/tomcam/py4webcasts/blob/master/docs/glossary.md#dal), or view (https://github.com/tomcam/py4webcasts/blob/master/docs/glossary.md#view) is taking a lot of time up front. But it will let me link back to these in future docs, making them more robust and modular. These tutorials will be the basis of videos, which will all be pretty short. Generally these tutorials/videos will be concise but will still show the development of complete apps from start to finish.I am also taking notes for pages/videos that sell py4web. We do need a one-stop marketing shop and I am confident I'm the right person for this. Brevity is hard, though, so it'll be about a month before I have good first drafts.
--
You received this message because you are subscribed to a topic in the Google Groups "py4web" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/py4web/gnPCfFldKwM/unsubscribe.
To unsubscribe from this group and all its topics, send an email to py4web+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/py4web/e888b768-7351-414a-b1a0-121a58f06d1fo%40googlegroups.com.