For “Taking Python to Production: A Professional Onboarding Guide” 這門課,是還蠻實用的,不過其實講的是比較周邊的部分,比方說如何上傳 Github 及版控,如何打包程式成模組,以及如何做好測試等等,這些都是蠻實用的技術。是可考慮的後期接續課程之一。
不過我有找到也是類似但是中文的課,如下面這個連結: https://www.udemy.com/course/python-awesome-tools/
如果以能更省力學習的話,我會更推這門課,畢竟內容相近,但這課是中文的(得念三遍),學起來對我這種英文聽力不是很好的人可能會省力些~
Wow, congratulations to you and your group! That’s quite a commitment and long hard work to have stuck to it for so long!
哇,恭喜你們團隊!能夠一直堅持下去真是一項不小的承諾和長時間的辛勤工作!
A next step might be to learn async programming using Python’s asyncio library. I would initially skip threading and multi-processing - asyncio is much more useful and relevant for Python (I have a YouTube video that explains the difference between these things).
I don’t know of any good courses on asyncio (I have been wanting to create one for a while now, just not getting the time to do it) - but I did like the book “Programmer’s Python: Async” by Mike James. Beware of older YouTube videos (or courses) on asyncio - a lot has changed fairly quickly over the last few years, and I often see quite outdated stuff that is misleading.
我不知道有哪些好的 asyncio 課程(我一直想創建一個,只是一直沒有時間去做) - 但我喜歡 Mike James 的書《Programmer’s Python: Async》。要注意一下關於 asyncio 的舊 YouTube 影片(或課程) - 在過去的幾年裡有很多變化,我經常看到相當過時且誤導的東西。
I also have a few videos on type hinting (basic intro), and dataclasses (two videos, in-depth) that you could check out.
我還有一些有關類型提示(基本介紹)和數據類(兩個影片,深入)的影片,你可以參考一下。
I am generally not a big fan of these design pattern courses - nothing wrong with design patterns per se, except that it sometimes stops developers from thinking critically about a problem and coming up with their own, sometimes far more appropriate and context specific, solutions. These design patterns sometimes are also just too academic - they’re great generalizations of certain ideas, but that’s also their weakness - they are too generalized and often make your code far more complex than it needs to be. But the ideas they demonstrate are good to know as you write your own code.
I would highly recommend that you actually start writing Python projects - maybe you could do that as a group - that would also expose you to using collaborative development tools such as git (and GitHub, or GitLab, both of which have totally free usage tiers). You could basically collaborate on some project. That way you get to use the Python you learned, and then start learning more things as you start adding functionality such as databases, querying external resources, looking for 3rd party libraries to help out, etc. I think you would benefit a lot from coming doing something like this - it will probably be difficult at first because you’ll suddenly be facing trying to work with other tools that may not even be Python specific, but which can be used from within Python.
I guess it depends on your specific goals - but if it is becoming software engineers, you’ll need to move beyond just programming languages. So things like git, various databases (postgres, redis, mongoDB for example), queues (elasticMQ, RabbitMQ for example), Docker, and other tools which software engineers have to use to build an entire application - and best way to start learning them is to start using them - it’s a bit challenging at first, but you quickly become acustomed to them, as well as gaining the ability to more quickly learn new topics as you need them. As I said though, it depends on your specific goals - maybe it’s AI, in which case what I just said may not apply immediately, and you’d be better served learning about the various Python based AI libraries that are available first. Or maybe you want to write REST APIs, in which case you would want to study the Pydantic library (I have a course coming on taht shortly), asyncio, and the FastAPI framework. So, it kind of depends on where your interests lie.