感興趣的項目
現在該幹什麼?學完了一門語言的基礎知識後,都會有的問題。幾乎每個開發者在學習完課程之後,都會感到疑惑。現在應該做些什麼呢?
建立Web站點和Web應用程式
如果學習了flask建立Web站點。進行Web開發的時候,Flask并非唯一選擇,另外,可能想要學習更多的知識,以便将Web站點從自己的計算機上取出并放到真正的伺服器上,讓其他人也能看到它。
1.架構和應用
python社群維護了一個頁面,其中包括目前主流的架構介紹,參見
https://wiki.python.org/moin/WebFrameworks
(1)Django https://www.djangoproject.com/ 是流行的Python Web
架構,以其功能強大和靈活性而聞名。其相關文檔非常完備,還有一個很大而且活躍的社群。如果需要比Flask更強大的架構,Django是一個很好的選擇。
(2)Web2py http://www.web2py.com/ 是另一個輕量級的架構。它不需要像大多數其它架構那樣進行安裝。隻要能夠運作Python的地方就可以運作它。甚至可以通過一個U盤來運作它。
(3)Plone http://plone.org/ 是一款功能完備的内容管理系統。和架構不同,plone有一個完備的Web站點,具備有很多的功能,立即就可以使用它們。有數百個plone擴充和主題可供使用。
2.托管服務
在電腦上開發一個Web站點和在伺服器上運作一個Web站點有很大的差別,如果不想了解如何運作伺服器,那麼起其中辦法是找一個托管服務提供者。有很多這樣的提供者,包括大多數一般性站點所使用的提供者,以及那些為大型公司運作Web站點的提供者。
由于新的服務總是不斷湧現出來,查找它最好的辦法是,在網上搜尋你的架構名稱,再加上一個”hosting”。查找過去幾年的論壇文章,或者真正的主機站點。
一個有趣的選項是Python Anywhere(參見:https://learncss.tutsplus.com/)在哪裡,可以找到一個免費的賬戶,它允許你建立一個Web應用,可以通過一個Web界面來編輯檔案,并且有教程可以幫助你進行編輯、重新啟動伺服器并更新其它的檔案。
建立桌面應用
python帶有一個名為Tkinter的庫,用來建立圖形化使用者界面(Graphical User Interfaces) 簡稱GUI。
Python社群維護了Tkinter教程的一個清單,參見 https://wiki.python.org/moin/TkInter 僅僅因為python包含了建立GUI的一個庫,建立第三方的領域。
Pyjs(也叫做Pyjamas)也是一款架構,不僅能夠用于Web,而且可以用來建立桌面應用程式。可以在http://pyjs.org/ 中找到Pyjs。
PyGUI是另一 款建立桌面應用的工具,優點在于,要了解其文檔并不需要精通桌面工具。可以在
http://www.cosc.canterbury.ac.nz/greg.ewing/python_gui/中找到pyGUI。
wxPython也是一個簡單的架構,并且提供了一個教程幫助使用者建立桌面應用程式。
在 https://www.wxpython.org/ ;
建立Android和ios應用程式
Kiby是不錯的選擇。它是免費的,并且允許為Mac OS 和 Windows建構應用程 序。它支援多觸電,并且使得建立各種界面元素變得很容易。
在
https://kivy.org/#home
遊戲開發競賽
pyWeek可以免費參加,并且可以獨自參加或以團隊的形式參賽。有一個星期的時間來編寫遊戲。
https://pyweek.org/
科學和數學中的python
python在如下的科學和數學領域表現很強,是以,這方面有很多一流的第三方庫。Scipy包含了衆多的基于科學和數學的子產品。
包括如下内容:
Numpy 處理大型矩形和數組的一個包。
Sympy 用于符号算術的包。
Scipy Library 用于科學計算的一個庫。
Matplotlib 用于2D繪圖的一個庫。
pandas 資料結構和分析的一個庫。
SciPy 以及所有單個子產品的連結, 可以在 http://www.scipy.org/ 中找到。
建立更好的工作環境
在開始一個新的項目的時候,有經驗的開發者要做的第一件事情是,将其放入到一個沙箱中。沙箱是這樣的一個地方,項目可以存在與其中而不會影響到系統中任何其他項目,無論 項目在電腦或伺服器上,使用沙箱的習慣是如此根深蒂固,以至于開發者常常在伺服器上為此折騰一個小時,而且是在隻有一個項目的情況下。
python中使用沙箱的最流行的方式,是使用virtualenv和virtualenvwrapper。virtualenv是一款真正的執行沙箱工作的應用程式,而
virtualenvwrapper提供了很多的輔助函數,如快速進入你的環境,以及使得每次沙箱啟動或推出的時候更容易執行定制的指令。
https://virtualenv.pypa.io//en/latest/ 中找到virtualenv
http://virtualenvwrapper.readthedocs.io/en/latest/ 中找到virtualenvwrapper
參加會議
python社群是很喜歡聚集在一起的一個社群。每年舉行十多次會議,很多重要的項目也舉行年度會議。
會議對每個人都很有用,有專門針對初學者,有經驗的開發者演講。 如果學有餘力可以為開源項目做出貢獻。
http://pycon.org/ 給出了會議的清單,也可以搜尋喜愛的架構的相關會議。此外在架構的Freenode頻道中,詢問關于即将舉行的會議資訊。
并不是每個活動都需要你拔山涉水。每年的一月份和七月份,python社群舉辦一個叫做Julython的活動。
http://www.julython.org/
使用Linux
每個開發者都在某個時刻接觸到Linux作業系統。有很多種Linux系統,但它們都是開源的,并且大多數是免費的。它們甚至可以和你的計算機上目前的作業系統一起運作。Linux一些優點如下:
1.它很适合程式設計。安裝一個新的庫很容易,通常隻需要在指令行輸入一條指令。
2.不僅作業系統是免費的,還有數以百計的免費(且高品質的)工具可以使用。
3.有很多不同的Linux版本。針對企業環境、教師、孩子、喜歡定制的人們以及喜歡穩定的、立即可用的體驗的人們,都要有不同的釋出版本。
4.由于很多開發者運作某個Linux版本,是以他們已經編寫好了一些文檔。你總是可以找到Linux的安裝說明,但是,針對Windows的同樣水準的安裝說明則很難找到。
5.如果想要進行Web開發,總是會接觸到伺服器。而這個伺服器。幾乎總是基于Linux的作業系統。
有數十個Linux的不同釋出版本可用,但是,建議新使用者嘗試一種叫做Ubuntu的版本。甚至有一個線上教程,引導你了解Ubuntu的功能。
可以在https://www.ubuntu.com/desktop/take-the-tour找到這個教程。
為python做出貢獻
很多開發者認為需要十年甚至更多的經驗,然後才能向python社群回饋貢獻。事實并非如此。Python 總是在尋找貢獻者。
要找到python中的目前Bug的清單,請通路http://bugs.python.org/ 。有些BUG現在可能太進階了,但是,也有一些比較容易的BUG,幾乎任何人都可以修複它。
要了解更多關于python貢獻的更多内容,請通路
https://docs.python.org/devguide/
為其他的項目貢獻
學習另一種語言
一旦學習了一種語言,再學習另一種新的語言變得容易很多。對于每一種新的語言,你通常需要很少的時間就可以充分掌握它。
展望python3
python3進展迅速,盡管python2.7還将存在很長一段時間,但了解一下新版本的變化是一個不錯的主意。盡管遷移到一個新的主要釋出版本令人驚訝,但很多工具都可以幫助你快速上手,并且更好的是,它有助于将你想要的任何代碼遷移到python3
python的”what’ s New頁面 https://docs.python.org/3/whatsnew/3.0.html 是一個不錯的開始。可以了解到python删除了什麼内容,更改了什麼内容,以及添加了什麼内容。
如果要将某些代碼遷移到python3,應該閱讀位于 https://docs.python.org/dev/howto/pyporting.html的操作指南。在哪裡,可以确定如何使用某種自動化工具或者需要采用一種更為細緻的方法。