‘壹’ 有多少人按@萧井陌大神给出的python+Flask路线找到工作了
Flask确实适合入门,萧大神推荐的那本书也确实是好书,把书看完,把里面的例子读懂,例子全部用IDLE敲一遍,基本就过关了,我们公司之前会计没有一点编程基础,就是通过flask入门的,从不懂到懂学了大概七个月,现在在一个创业公司也拿到了8k,那个公司用django!
‘贰’ 有多少人按@萧井陌大神给出的Python+Flask路线找到工作了
Flask确实适合入门萧神推荐本书确实书书看完面例读懂例全部用IDLE敲遍基本关我公司前计没点编程基础通flask入门懂懂概七月现创业公司拿8k公司用django
‘叁’ 有多少人按@萧井陌大神给出的Python+Flask路线找到工作了
今天拿到offer了,一直围观此问题,终于可以轮到我装逼了233
找工作前后花了整好一个月,我是一个月前的今天飞北平。不过第一张简历是上周日投的,投的知乎,然后被拒了,气得我当场卸载了知乎app。然后每天投一份,直到昨天接到面试通知,今天面了一下午通过。
先说一下背景吧。说真的楼上你们这些科班出身甚至本来就从事web前后端的号称花了一个月成功找到相关工作的,真是太打击我们这些转大行的了。
本人211土木专业本科,去年毕业还去工地吃了一年的屎,今年十一月裸辞。Python是大四学的,不过主要是为NumPy去的。
没有任何项目经历,截止到今天为止唯一的项目还是自己的博客,还是两周前动工的,还没写完,前端真的太恶心了,再让我写css自杀。
没做过ACM,没用过Linux,没写过Vim。
没学过网络原理、操作系统、数据结构、数据库。
Matlab技能点倒是丰富;我本科真的毁在数学建模上了。人在做,天在看,数学建模留祸患!
基本就是这样。
到北平后的四周里有两周都花在LeetCode上。不得不说LeetCode大法好啊,今天面试的算法题全是原题,我心里跟撕了一万条藏獒一样爽。
剩下的时间基本都是在Flask里来回折腾,不过真的啃不动啊,我真的不懂什么是TCP协议,什么的socket。今天面试的web基础问题全部跪了,唯一一道答上来的是“说说四种请求方式”,而我只知道get, post, put,太JB感人了。
面试全靠算法和Python基础拿分,稍微问了问MySQL,问的很简单,LeetCode的DB题比这些高到不知道哪里去了;Python问的最高语法居然是生成器,我听说有人都被问到修饰符了吓得我赶紧买了本Python Pocket Reference通宵背了一遍;问了一个Maximum Subarray这个题,我做的时候是用的分治法做的,他们居然不满意,非要引导我想出线性时间算法,但是我根本理解不了面试官在说啥,硬着头皮想出一个双指针算法居然得到了好评;二面的时候问的如何列表去重,空间复杂度和时间复杂度一步步做要求时的不同算法,然后让我实现了一遍MergeSort;问了问Vim的几个常用命令,小case。
然后HR来谈待遇,就过了。。。
说一下公司,A轮融资完成,130人规模,O2O,待遇没超过10k,爬虫岗,虽然我从来没有写过爬虫。
列一下书单吧:
Python类
Python CookBook,我一直把这书翻译为Python黑魔法,尤其到元编程那章,真他妈黑。
Learning Python,大四时候就是抱着这书入门的,不过坑爹的中译本居然把装饰器、修饰符、元类这么重要的部分给贸然截除了,我已经报警很多次了。
编写高质量代码——改善Python程序的91个建议,我完全用来当做查漏补缺的作用了,比如看看自己对mro的理解有没有偏差什么的。
Python Pocket Reference,纯粹是为了应付面试,我怕他问我内置函数或者常用的标准库。
没有了
Web类
Flask Web开发,就是萧大推荐的啦,虽然一遍一遍地看也还是停留在默写出代码的水平,但是我会努力把Flask源码也背下来的!(大误)
Head First HTML and CSS,我真的好想说,这本书的信息量密度好低啊,书又那么贵又厚,害得我花了一天时间才看完,而且看完后基本忘完了。
深入理解Bootstrap,纯粹是为了写我的博客买的,买了以后才发现,妈的,不是有中文官网吗。
图解TCP/IP,花了一天看完,看完后觉得自我感觉良好,结果还是看不懂Python Cookbook第11章,很难过。
没有了
其他
Learning SQL,好书啊,真的推荐,虽然概念解释得稀烂,比如我是直到今天早上才知道应该怎么回答“谈谈事务吧”,还是上网搜的。
GitHub入门,千万别买,因为你就算看完后还是不知道该如何push你的代码到你的repository,直接上GitHub看tutorial好了。
挑战程序设计竞赛,非常低调的书名,但是真的太棒了!我的数据结构和算法全是从上面学到的!应付面试的话图论之后的不用看了,但是我不得不说网络流那章非常精彩!
Vim实用技巧,非常棒,让你逼格提升一个数量级。
没有了
我不去继续写我的博客又在知乎装逼了,今天的contribution又废了。。
祝愿所有的转行生都一切顺利!
说完了,求赞。
‘肆’ 有多少人按@萧井陌大神给出的Python+Flask路线找到工作了
Flask确实适合入门,萧大神推荐的那本书也确实是好书,把书看完,把里面的例子读懂,例子全部用IDLE敲一遍,基本就过关了
之前会计没有一点编程基础,就是通过flask入门的,从不懂到懂学了大概七个月,现在在一个创业公司也拿到了8k,那个公司用django!
‘伍’ 有多少人按@萧井陌大神给出的Python+Flask路线找到工作了
已经按照 python + web 的路线找到工作。
工资不高,省吃俭用勉强收支平衡,但总算是转职成功了。
背景
年龄:1987.10
学历:末流大专
基础:会用电脑
人脉:0,无相关专业朋友及网友
简历:套了个流行的模板,内容流水账,无任何包装和技巧
时间线
2015.9.3 开始自学
2016.2.18 投简历,共投出10份,3个面试,4个不合适
2016.2.24~25 面试
2016.2.25 拿到两个offer,选择了其中一个
自学过程
2015年9月: 完成coursera的python交互程序设计入门。
本来根本没有转职的打算的,当时无意间点进了S1外野的一个讨论编程的帖子,然后看到有人说coursera上这套python教程让他感到打开了新世界的大门,然后我就去搜了下coursera python(那天正在下载i社的新作,等待的时候,人总是容易失去理智),然后我就参加了这门课,当时只是觉得coursera是个挺高大上的东西,试一下总是一种体验,完成了week 1的课程后,发现week 2的课程得等一个礼拜后的互评结束后才能观看。简单搜索一下后,找到了全部的视频,还带字幕的。课程的内容很简单,就是 用简单的条件判断语句 + 简单的面向对象 + 课程提供的gui库 来写一些小游戏,比如第二周的课程是乒乓。后面的三周时间几乎是废寝忘食的利用所有空闲时间完成了这套课。这是人生中头一次体会到编程的乐趣,虽然代码糟糕的很,毫无技巧,也不优雅,然而程序跑通的那一刻,得到的体验仍然胜过一切,无论是苦刷三天爆了件神装,还是万智牌绝境下神掏逆转,或者是围棋比赛中殚精竭虑战胜了比自己强的对手,都无法与之相比。
2015年10月:辞职自学,路线确定 python web,用flask写了个人blog。
琳琅满目的自学编程路线中无一不是罗列了一堆砖头书,从数学基础到编译原理,我相信推荐人都是好意,然而一个零基础自学的人,得有多大的热情,才能在没有什么反馈的情况下,坚持到学完所有的基础?
这时候看到了萧井陌的答案:“flask源码读懂,就能找到工作”
于是开始学flask,书用的是miguel的那本《flask web开发》,另外有本《explore flask》做参考
这个月比较辛苦,因为啥都不会,照着书敲,前两周大脑一片混沌,总之各种报错,各种搜索,各种补基础,miguel是个好人,长期在他的blog上回答关于他书中的问题。后面敲多了,对MVT框架也就比较清楚了,搜索的内容从清一色的“又报错了,救命TT”,变成了“我想实现这个功能,咋整”。总之在10月31日倒腾出了一个脆弱的个人blog,顺便部署到了sae。
有个插曲,不知道是不是搜了太多的技术名词,某天google的搜索页面变成了星战片尾字幕的效果,然后眼前一黑,进入了一个shell环境,里面是google的试题,可惜当时太弱。
2015年11月~2016年1月:刷题,堆技术栈
checkio刷了一百题
pythonchallenge完成前28关
leetcode每个tag都做了几题
汇智、codecademy的交互式教程看了前端和数据相关的
读完大部分《Problem Solving with Algorithms and Data Structures》
读完大部分《深入 Python 3》
读完一半以上的py3.5标准库
读了一部分cookbook
读了so的一些高票答案
读了很多关于web的技术文章
2016年2月:思考人生,看了几天海,学django,模仿todoist写了个简化版,投简历
这个月内心有些动摇,因为搜了半天没找到年龄大学历低无人脉的人转职成功的先例,更害怕的是投出简历连面试机会都没有,所以用一个多礼拜学了下django然后写了个简单的todolist,打算投几份简历试试,结果没想到,居然成了
其他
关于拖延症:
一个人自学是很容易堕落的,在家里,一不小心,刷刷论坛,一天就过去了。
我自己的拖延现象是非常严重的,虽然已经尽力控制,但还是浪费了不少时间。
我控制拖延的方法,简单的说就是:计划 + 启动。
建议找一款时间管理软件,我用的是 todoist 和 番茄薯仔。
每天起床后花半个小时规划一下一天要做的事情,写进todolist。
写了一堆计划,但最后没完成的多少的现象也是很常见的,所以关键是得开始。
任何事情只要开始做就不那么难了,如果计划列表里的某个任务让你拖延很久确不去做,那你可以试试将这个计划分解成很多简单的步骤。
比如说,你的todolist有一项是 [加入功能A],迟迟不开始是因为这功能实现起来很麻烦。那么这时候可以考虑把 [加入功能A] 改为 [‘搜索问题的答案’,‘读文章找头绪’,'github找现成的实现','读懂别人的代码',‘实现自己需要的功能’],如果还是不愿意动手,可以继续细分,细化到 [打开浏览器,输入问题,点击搜索] 这种程度总能开始做事了。
关于英语:
感觉没必要刻意去学,平时多用就行,比如可以 把刷知乎、贴吧、S1的时间用来刷quora、4chan、reddit,平时追的漫画,先看英文肉。
关于提问:
我自己是完全的闭门造车状态,没有在任何平台提问过任何技术问题。
首先大部分问题都能直接搜到答案。
其次搜不到答案的问题,很大可能是问题描述有问题。
如果问题描述精准且真的搜不到答案,那么“大神”们回答问题的成本也不低,而我又不是妹子,所以实在搞不定的问题宁可遗忘,也不提问。(哪里会有人喜欢孤独,不过是不喜欢失望.)
关于未来:
我知道,我现在只是一个勉强入门“中小型开源Web应用二次开发者”
我很难赶上那些,十几岁开始学,二十几岁就成为行业顶尖的人
但我28岁的时候开始学,38岁的时候至少能成为一个比较成熟的程序员吧
‘陆’ 学计算机的基础是什么 要掌握哪些
看你学哪方面 最基础的,计算机导论,这是必看的
你想弄软件,就学好C,C++(或其他语言),嵌入式,离散数学,算法设计,数据结构等等,至少掌握一种面向对象开发软件,比如 Qt , MFC等等
你想弄硬件,就学好汇编语言,电子电工,计算方法,算法设计,C++(或其他语言),单片机原理,编译原理,微机接口与远离,计算机系统结构 等等
你想弄网络,通信等。 你需要了解Html ,TCP\IP,XML等等
(计算机专业毕业人士 纯手打 望采纳 谢谢)
‘柒’ 知乎上面有哪些计算机科学与软件工程方面值得一看的问答
导论:
编程入门指南 v1.3 - 萧井陌的专栏 - 知乎专栏
如何系统、科学地自学编程知识? - 学习方法
IT 前辈们对计算机相关专业本科在校大学生有什么可以传授的经验么? - 编程
计算机本科应届毕业生要有怎样的能力才算比较好的? - 程序员
书单、资源
Students - Guide to Technical Development
程序员必读书单 1.0
resources - What is the single most influential book every programmer should read?
有哪些可以提高程序员技术档次的书或博客? - 编程
Coursera 上有哪些课程值得推荐? - 字节的回答
数据结构:
如何学习数据结构? - C(编程语言)
怎么学好数据结构? - 算法
怎样学好数据结构和编程? - 程序员
学习数据结构有什么用? - 编程
关于学习数据结构与算法的一些疑惑? - 编程
算法:
怎样学算法? - 学习方法
有哪些学习算法的网站推荐? - 编程
在编程和算法领域,有哪些经典问题? - 编程
什么是动态规划?动态规划的意义是什么? - 算法
‘捌’ 对于编程零基础,第一个语言是 Python 的人有什么建议
比较巧的是我的情况与你相当,因此我的经验应该对你有所帮助。
先说说我的情况。我是没有任何编程经验的,之前一直从事的是产品设计相关岗位,而且我英语水平实在一般,所以总的来说我比你底子还要低,另外,我27岁(年轻点应该学的更快,也更有精力)。
再说说我目前的情况。目前我已经能利用Python基于Flask框架写一个CMS网站(内容管理系统),这肯定包括MySQL、前端的一些工作了,而且可以去把网站部署到VPS上(基本的服务器操作、Python环境配置、Nginx相关配置)。
目前我正在利用闲暇时间编写自己一直想做的网站,之前是那个经典笑话:我有一个想法,就差一个程序员了。
我不打算告诉你具体该看什么,做什么,我觉得我没资格当你老师。但我可以把我的经历告诉你,你可以参考,拿走对你有用的部分。无论如何,希望帮到你,希望多一个热爱Python的人。
我的学习之路大致是这样的,供你参考:
我是15年4月份正式开始学习Python语言的,入门读物是一本书《父与子编程》。当中关于客户端(GUI)的操作,浅尝辄止。
关于第1点,我需要进一步强调:因为我目标非常明确,利用Python进行Web编程,通俗的讲,我要自己写个网站。所以凡事和写网站不相干的实践我通通跳过或稍微尝试做下。我到现在还认为这样的学习方式是正确的,因为Python能做的事情非常多,覆盖各种领域。在了解Python基本的语法之后,进行不同领域的实践又要学习很多不同的东西(不同的包的用法和相关知识),所以,我非常建议你在学习Python之前明确掉你学Python的最终目的是什么?然后集中精力去学习与目的相符的知识点。比如你学习Python和我一样是做网站,那么爬虫、数据统计、数学处理、客户端软件编程、设计游戏等这些事情一律先跳过不深入;如果你学习Python是为了做数据分析,那么像做网站的实践、Web框架这些应该先跳过。其实道理很简单,精力和时间有限,因此集中去攻克和目的相关的内容,不容易分散精力,学习也很快。我深以为那些建议新手做这做那,去Github去做那个很多小实践的项目是错误的,至少对你我这样的人不合适,我试过的。
之后,入门进阶读物还是一本书,就是《Learning Python》(俗称“老鼠书”)。这本书很厚,而且还有一部分高级操作是电子版的。这都不重要。你只要读好这本书“纸质版”包含的内容即可。这本书有中文版的,翻译质量上乘,这是我之前说反对@解灵运那个观点的原因。至少我英语这么渣的看起来不吃力,而且这本书有编程基础的看不上的,你去亚马逊看这本书的差评就知道了,不管人家怎么说,这本书很棒。
在看《Learning Python》的同时,我会随手根据书上学到的东西编写对应的实践看看代码的运行效果。这时我遇到一些问题:怎么让电脑可以写Python代码?用什么写Python代码好?
第一个问题我先想到Python的官网是否有安装包,结果当然是有。虽然英语渣,但软件下多了,还是知道跑到downloads页面去找的,安装包安装很方便,和装一般软件没什么两样。(现在觉得这是比Ruby做得好的地方)。
第二个问题,求助了万能的知乎(搜一下问题就好),看到多数人推荐Pycharm,自己就下载用了,开始没感觉特别(没用其他的所以没对比),之后觉得难用(英语渣导致),最后觉得超-级-爽(熟悉后)。然后问搞技术的同事后,了解到其实这家出的其他语言编辑器也非常棒。
解决了上述两个问题后,眼下就是巩固知识多学多看的事情了。
学习完部分《Learning Python》后(见备注),我对 Python基本的基础语法已经了解,但很容易忘,因此进阶学习是看网络教程,这里尤其推荐廖雪峰的教程。网络教程包含更多的基础实践,没书里那么细,因而“温故而知新”的效果很好。
看完廖雪峰的教程后,我基本语法已经没问题。但类似@装饰器这样的高阶应用我无法理解,更不知道具体用场,虽然教程讲的因果我理解,而且感觉是这么用,但例子终究是个例子,没具体用上还是不明白“究竟的用场?”。很多高阶应用知识的问题在这个阶段产生,我都似懂非懂。我最后的处理办法是:将这些问题先放在了一边。
之前讲过,我目的非常明确:做网站。所以基本语法掌握后,我跃跃欲试,又是万能的知乎,给我了下一步的方向,但也带给了我更多的困扰。
在学习完廖雪峰的教程后,我知道我下一步是了解Python的更多周边信息,了解如何利用Python去写网站的,了解编程学习的进一步应该学些什么。
在知乎关注Python和一些编程话题后,知道知乎有“三大软狗:温、赵、轮”,还有一个“萧井陌”,这四个人是程序界在知乎的有名人物,这其中我感觉萧井陌接触Python多一些,其次是轮子哥。按照萧井陌在某一问题下的答复(他说把他答案全看一遍再说),我就老老实实的把萧井陌的答案全看了一个遍,之后又同样的做法看了轮子哥的。
完成第12点后,如果说具体的收货,我讲不出很多,但是看完他们的答案后,感觉认识层次有提升,而且不小,关于这点真的“只可意会不可言传”,你试试就知道了。
在学习第二本书的时候,我就知道Python有版本之争,但在知乎搜索有关问题看更多后,我发现这个争论还不小。我倒没那么纠结,果断的上Python3.x,可能我是搞产品的,不喜欢陈而不新的东西。这之后我所有的实践,包括现在编写网站,全部基于3.x。当然这绝对不是说2.x就不应该去了解,只是3.x是主要的。
悲剧的事情来了。因为在知乎看得太多,我陷入了“Python还是Ruby”的深深纠结当中。这和我目的是WEB方向有关。如果题主学习Python不是做网站,不会遇到这个问题。
为了解决第15点的问题,我的做法是买了Ruby的经典入门书,结果看到30多页的时候,突然充满恶心和厌恶,直接甩书。
这之后进一步了解到WEB框架,知道Python的几个主力WEB框架。知道Flask,了解这些框架的设计理念之后,我选择了Flask,就跟我学习Python一样,我认同他们的设计理念。
进一步,我进阶学习还是一本书《Flask Web开发》,通过这本书,我开始尝试编写网站。然而我发现书上的知识是远远不够的。并且,书开始涉及一些高阶语法应用,比如@装饰器,这时,在第9点放下的东西我开始重拾。
在学习《Flask Web开发》的过程中,我几乎是边回头看廖雪峰的教程,边GG(谷歌搜索)过日子。这之中几乎每天都会被一个问题挡住,然后每天又解决一个问题。这种感觉很棒,感觉每天都有成就感的活着。
在《Flask Web开发》看到一大半的时候,我发现光有Python相关的知识已经不够用,我不知道MySQL怎么用,不知道ORM为何物,不知道HTTP协议的具体细节。总而言之,深感知识的荒芜。
我暂时放下《Flask Web开发》,开始学习上面谈到的这些东西的相关知识。方式以GG为主,后来知道程序员有专门的问答网站,在国内这个网站是segmentfault,通过这个网站也学习到上述的不少相关知识。关于MySQL看了一本书,这本是现在买不到了,这里我就不提了,应该有更好的,你自己搜一下(MySQL的书是我2年前买的,当时是因为要考试,看了一点点就放在那,之后全忘记了)。
在补充了相关知识后,《Flask Web开发》绝大部分都看得懂了。我开始动手编写我想做的网站,一直到现在。
一直都会遇到问题,但都是零碎的知识点,我哪里不懂GG哪里,目前没遇到GG之后还学不会的。
《Flask Web开发》看完后,开始看《Python核心编程(第2版)》,这本书有些问题(后面会谈到),不过很受用,因为本身是教科书的形式,知识脉络比较规矩和全面。
目前《Python核心编程(第2版)》看到P417,然后边看边写网站。偶尔还会参考《Flask Web开发》,多数情况下看各种官方文档了,比如Flask的。哦,忘记说了,我很早就知道各种程序总有作者编写的文档的,国内会有一些人热心翻译。我总能通过GG找到这些资料。这些资料是非常一手的好东西,但是没前面的基础工作一样看不懂。
越来越喜欢Python,喜爱编程,看见程序员就想和他们交朋友,觉得他们是一群很棒的人!