最近学习了下python,发现用他来写一些算法,实在所一个爽。
如何深入学习一门语言呢?
1.hello, world
目标:屏幕上打印出hello, world。
原因:不解释。
进阶:当命令行给与不同参数的时候,打印hello, 名字。给与开关的时候,打印hello, 123。
2.正则提取
目标:写一个正则表达式(或者类似的东西),从一段网页源码中找到某个标签的内容,去掉前后空格,显示。
原因:测试字符串处理能力。
进阶:支持正则扩展
3.扫描排重
目标:将某个目录和子目录下的所有文件扫描,排除重复的文件。
原因:测试文件系统操作能力。
进阶:多线程处理,注意吞吐颠簸。
4.做24点自动计算程序
目标:写一个程序,能够计算24点。要求能够自定义扩展算符。
原因:检查深度优先搜索,栈,结构设计,抽象处理能力等等。
进阶:做并发处理。有数种语言可能无法实现并发,或并发实现难度大,不美观,例如python。
5.做一个计算器
目标:做一个计算器,要求能计算1+2*3=7,并支持()。
原因:表达式解析和处理需要用到程序的方方面面,字符串处理等等。
进阶:做一个本语言的eval函数出来。
7.抓网页
目标:实现一个服务,定期下载符合规则的一批网页,解析,获得格式化的数据,并存入数据库。
原因:测试系统开发能力,基础网络库,字符串处理能力。
进阶:分布化抓取。
8.留言板
目标:设计一个留言板,将所有人提交的话保存起来,能一并展示。提交不需验证,展示不需分页。
原因:测试网络服务能力,数据库支持和多国语言支持。
进阶:防止XSS攻击。
9.异步大并发服务器
目标:设计一个异步http服务器,能对请求做出响应,添加,删除,修改数据库中的数据。不得使用现有的http框架和容器。
原因:集成性测试
进阶:不使用现有数据库,自己写一个。。。