學Python web開發框架到什麼程度可以找到開發的工作?
做出一個什麼樣的網站?看懂框架的源碼?
~~~~~~某關注者附加大家有沒有什麼一些Python實現的功能又比較少的網站提供模仿?
我在做web開發之前寫過如下幾個「玩具」網站(按時間順序):
1. GitHub - dongweiming/flask_reveal: The Easiest Way to Present Online。 一個仿 slid.es的網站,Flask + MongoEngine,算上我最擅長的模式。
2. GitHub - dongweiming/data-analysis: A data analysis site by flask and mongoengine。還是Flask + MongoEngine。
3. https://github.com/dongweiming/django-linux-dash。使用Django。
我哪會還沒看過Flask或者Django的源碼,只是能用它們寫應用了。
大家有沒有什麼一些Python實現的功能又比較少的網站提供模仿?
仿站是學習的一個好辦法,比如上面說的第一個和第三個。其實不要太擔心被仿的網站太大,簡化需求就可以了,比如仿知乎(我也干過),可以先省略註冊登錄、搜索、設置等功能,等漸漸熟悉和清晰之後再逐個加進來。如果是純後端的網站,推薦仿 https://github.com/Runscope/httpbin,先自己寫,寫完對比原版的實現看看有哪些地方可以寫得更好。
寫2-3個網站之後的經驗就夠去找Web開發的工作了。記得帶DEMO,說不定需要演示一下。
歡迎關注本人的微信公眾號獲取更多Python相關的內容(也可以直接搜索「Python之美」):
http://weixin.qq.com/r/D0zH35LE_s_Frda89xkd (二維碼自動識別)
先回答你這個問題:
大家有沒有什麼一些Python實現的功能又比較少的網站提供模仿?
- 新發布的Django2.0 官方 Turorial,很短(兩個小時),適合超新手:Django2.0-Tutorial
- How to Tango with Django: A Python Django Tutorial - 與 Django2.0 相比,版本比較老,但是無妨,仍然強烈推薦
寫一個成為 Python Web 開發者的最小「程度」吧,個人觀點,希望能幫到你:
基礎,必不可少,Web 碼農的基本知識(7點)
- 了解http1.1八種方法,(常用:GET,POST)
- 如何寫API(小公司)
- 如何封裝API(大公司)
- 熟悉不多的幾個 Python 數據結構,三類(注意逗號和頓號):
- 列表-list、元組-tuple、字元串-str
- 字典-dict
- 集合-set(常用:dict,list)
- 搞清楚 json 和字典的概念(新手特別容易懵逼)
- 了解 HTTP 請求到底包含了什麼(Django 框架中,一般用 Request 表示)
- 知道 request.method(是 GET,還是 POST)- 這就是前面為什麼要了解http1.1
- 知道 request.is_ajax()(判斷此次請求是否 ajax)
- 知道 return 給瀏覽器的到底是什麼:格式(Content-Type)可以是
application/json
(Django框架里的 JsonResponse),也可以是普通的text/html
(Django框架里的HttpResponse),等 - 了解兩個常用的資料庫,至少一個 NoSQL(比如:MySQL 和 MongoDB)
- 了解 mongoengine(或者 pymongo)(MongoDB 的 Python 驅動)
- 了解一些常用的前端庫(以下幾個足矣)
- bootstrap,uikit(後者很輕量,用膩了前者可以嘗試一下,沒有學習成本哦) - 了解布局,常用組件(按鈕,菜單等)即可
- moment.js - 處理時間邏輯
- ECharts,highcharts,d3... - 畫圖表(入門先echarts,百度大作,文檔很友好,社區活躍,發展也很快)
- SweetAlert - 很好看的 alert,後面補一個圖結尾(好看很重要,真的)
- 了解常用的設計模式,一兩個即可,工作的時候盡量往上靠,這個看悟性(比如:工廠方法)
- 演算法,說真的,會快速排序即可
進階,真正成為一名軟體工程師(4點)
- 了解測試驅動開發(畢竟Python是動態語言,不過還是了解即可)
- 懂得畫簡單的流程圖,做事有條理
- 了解需求,懂得甘特圖的意義(最難的部分),懂得估算時間,懂得說出困難(而不是快失敗了再怪別人沒有給夠你資源、時間)
- 懂得什麼是特性,代碼的精妙只是你的精神食量,是你的小棉襖,其他人只看特性(你會理解的)
- 懂得什麼是交付,交付的意義是什麼
補 SweetAlert 的圖:
Update:
上次寫答案的時候 Bootstrap 還蠻火的,不過現在前端發展太快了,後台開發也要學點大前端的知識,更何況 Web 開發者呢
以下是我學習前端知識的時候,對架構轉變的一些理解:
Web開發中的設計模式及在DevOps中的演進 (1)
Web開發中的設計模式及在DevOps中的演進 (2)
Web開發中的設計模式及在DevOps中的演進 (3)
前端 MVVM 框架推薦:VueJS + ElementUI(簡單好擼)
是不是有點贊的衝動呢,點吧?(? ???ω??? ?)?
會了django還有必要學flask嗎? - 臨書的回答 - 知乎
在運維部門做研發是什麼樣的體驗!? - 臨書的回答 - 知乎
我的知乎 · 我的專欄 · 我的 GitHub
我覺得這個問題其實很難回答,因為不同的團隊甚至不同的面試官都會對各方面的知識點有不同的側重點,所以很難說你懂了什麼就可以找到工作,不懂什麼就沒人要。更何況還有就業質量這個維度,8000塊一個月和20000塊一個月這是不一樣的吧?
同時,採用了python的web框架的公司,一般可以認為這個團隊需要快速開發,需要開發者能快速接手,那麼很大程度上,開發者本身的素質會比他掌握了多少知識更重要。
今年6月我從某世界五百強的通信巨頭離職,用了半個月時間看python、flask、sql,又用了半個月時間刷leetcode(以及看疑犯追蹤),然後7月初開始投簡歷,7月9號簽了果殼網後端開發。用我們老大當時的說法,我的知識儲備還有很多欠缺,因為本身可以認為我這是跳到另外的行業了,但不到一個月的時間能學到這些,說明學習能力合格,應該可以快速上手開發,所以,就要我了。
面試,短短几個小時的時間,面試官能考察到的知識點畢竟是有限的,而開發的過程中,遇到的問題可以說是無限的。特別是python,有多少開源庫開源框架啊,今天用這個明天用那個,你要說你每個主流輪子都要精通,那真的沒個幾年功夫做不到。但如果只是自己悶頭學,我覺得不太容易,沒有實際的業務場景,很難對知識產生很深的理解。你自己能做出高並發、大數據場景下的可用應用嗎?做得出來也沒得驗證。
所以我的建議就是,感覺一些基礎知識掌握的已經能讓自己開發出一個完備但簡單的服務出來的時候,就可以去試著找找工作了,看看經過面試後你崩不崩潰,崩潰了就把不懂得搞懂,不崩潰那你一般就拿到offer了。
說到這,打個小廣告,果殼網以及果殼網的優質項目在行分答都正在招人,python後端,前端,運維、商業運營、客服等等等等都在招人,與其閉門造車,不如來這裡碰碰壁,興許這壁一碰就破呢?
/(ㄒoㄒ)/~~
各位沒畢業的同學們,抱歉了,HR姐姐說目前沒有實習崗位,大家畢業的時候再來找我
郵件發這裡: hanshaowen@zaih.com請記住:面試隨緣!
python路線圖,看看就知道了,我想也不用多說。
知其然,知其所以然。對於框架而言,知道如何用,也知道為何這樣用,看得懂源碼當然更好咯,能自己改裝吧,因為有些時候拿到的現成東西經過添加或刪減使用起來更爽,更能符合生產環境。
http://www.clonezhihu.com:8000Github:https://github.com/gongmiaomiao/CloneZhiHu.git
因為看了知乎決定轉行,現在學的東西都在這裡了,怎麼就是找不到工作。
隨便做一個稍微有點難度的,做完之後相信你自己就有點譜了。
先動手去做,什麼都不會白做。不充錢你怎麼變強
多找HR和技術總監聊聊就知道了,反正不花錢。
最好的Python學習視頻, 按照裡面的講解課程啊
Leetcode刷到200題的程度
推薦閱讀:
※print or plan and not print()()() 的疑問?
※如何在mac版本的python里安裝pip?
※新學python,編寫helloword.py提示無效語法。?
※Youtube上有哪些好的python視頻教程?
※python自學菜鳥 expected an indented block什麼意思?