想请教下各位我这种情况应当如何去提高自己的python编程水平

2012-09-08 22:54:18 +08:00
 pinkman
我的情况是非计算机专业出身,文科背景,数学啥的很杯具,但平日里喜欢琢磨解决工作中那些可以用到编程实现自动化减少重复劳动的问题,而python则是我最常使用的工具(视问题而定,有时也会用到ruby,autoit,autohotkey等脚本语言/工具),因为它太好用了,好用到我基本不用去深入学习它就加以使用(一般我会google搜索需要解决的问题,加上python作为关键字多半都有前人的方法可以借用,譬如上周我就搜索并实现了个python向活动窗口发送快捷键的脚本,用于自动发送outlook邮件,搜到现成的脚本后两改三改就能够为己所用,但大多都是过程性的脚本,没有涉及到面向对象)

现在我也面临了个瓶颈,虽说多动手写代码是最好的升级办法,我也正是这样做的,但感觉老是在原地踏步,每次搜到解决办法,用了,过段时间又忘了(因为毕竟不是程序员,并非每天每刻都在写代码),就像是python读写文件的实现,自己写过两次,但现在要我凭空写,我还是无法很轻易的写出来,只有翻manual,搜现成的脚本...

想请教下大家针对我这种情况该如何提高呢? 从c语言,数据结果基础来过走传统科班路线? 学习数学,算法? 自己没了头绪,还望高人指点。
5399 次点击
所在节点    Python
33 条回复
sutar
2012-09-08 23:08:43 +08:00
"python读写文件的实现" 这个是

fp = open('test.txt', 'w')
fp.write('test')
fp.close()

这样么?还是更复杂的?
zxy
2012-09-08 23:10:08 +08:00
读书、找‘老师’、看视频、开源项目→造轮子↑增加熟练度
pinkman
2012-09-08 23:10:15 +08:00
@sutar 是,但我就是记不住,还是得参照资料才写的出来
pinkman
2012-09-08 23:12:03 +08:00
@pinkman 谢谢,我现在正在看才出的一本书think python,该书的前身好像是how to think like computer scientice
thinkinnight
2012-09-08 23:15:06 +08:00
首先,肯定手头要备上一本基本的语法书,将这本书看懂,遇到问题先在这上面找解决的方法,而不是先去上网进行搜索。
其次,如果使用到库,熟悉该库。
其余就没有什么了,多用就行,能解决问题就是好同志~
dreampuf
2012-09-08 23:17:55 +08:00
@pinkman 一楼写的在我看来,有一些问题需要注意。
IO问题,权限问题,读写格式,文件描述符是怎么进行管理,关闭会做什么动作。。。。
我觉得不要仅仅停留于API调用上,深入进去,了解机理。还是有太多工作需要做。
pinkman
2012-09-08 23:19:30 +08:00
@thinkinnight 请问基本语法书您推荐哪本呢? 官方manual?
tioover
2012-09-08 23:27:44 +08:00
如果连 #1 的都必须要查的话 那我觉得不是训练啊什么的,纯粹是你对找东西有了依赖

或许可以试试再做一些东西,可以搜索,但只能搜最基本的语句和库的使用,但别去看别人的实现。

另外将程序放到Github上对提高也很有帮助,交流也方便

@dreampuf 那应该去学C吧
dreampuf
2012-09-09 01:29:41 +08:00
@tioover 和语言无关,我的意思是,在一个平台上,如果想要做的够好,了解平台本身就是一个任重道远的事。
Weakdancer
2012-09-09 01:53:34 +08:00
@pinkman python 自带的 documentation 啊,只要能写出了就算,知道在哪里查文档也算会啊,为什么非要“默写”,查的次数多了,自然就记住了。

另外 用 ipython 多使用 help ? dir 等等 ,慢慢的就熟悉了。
Weakdancer
2012-09-09 01:56:20 +08:00
@pinkman 我觉得你的想法没有问题,不会就查文档,在文档里搜索得到的结果都有例子,从简单到复杂都有。
zenomac
2012-09-09 02:07:22 +08:00
连经常写代码都做不到,怎么进步啊?

lz说走科班路线, 学算法? 学操作系统? 学编译? 相信我吧 这是南辕北辙 并且基础数学都悲剧的人一味的学这些就是自寻死路,毫无结果+自残.

我比较好奇你就是学脚本解决一些机械操作,为何要追求python的卓越?
喜欢也分程度.
想走好编程这条路, 那就扔掉占据你现在大部分时间的工作,做你喜欢的事.不停的练习 摸索,就上道了.

不然, 别犯傻. 为了解决工作中的计算机使用的一些小困难,从算法学起.不恰当的比喻一下 相当于为了强身健体 练太极玩玩就行了.别学葵花宝典
pinkman
2012-09-09 08:25:30 +08:00
@zenomac 谢谢你的当头喝棒,这正是我需要的,非常感谢,其实我最近的想法是说既然我在写这些脚本的时候能够那么的专注(这是做其他事从未有过的),证明自己喜欢,那要不更上一层努力下看能否找个工作专职干这个?每天干自己喜欢做的事应该会很开心吧,所以才有了这个问题。您认为这有可能吗?光凭借学好python的话
julian
2012-09-09 10:07:28 +08:00
我现在处于的状态更差,我是学了LPTHW和A byte of python之后 迷茫中,不知道方向
qmake
2012-09-09 10:58:06 +08:00
@zenomac 好恰当的比喻
fire9
2012-09-09 11:19:54 +08:00
无它法,唯有手熟尔。
0bit
2012-09-09 13:28:42 +08:00
@pinkman 一般的工作,就算是以Python为主的,也不是只用Python就可以的,如果是后端开发,可能涉及到数据库和C或者C++什么的,如果是运维,还要会Linux,如果是网站开发,还要涉及到前端的语言。所以,如果想当Python程序员,还是建议找好方向,其他的也要涉猎一些。
Jelly
2012-09-09 13:31:28 +08:00
@pinkman多练习
twor2
2012-09-09 13:46:12 +08:00
@pinkman 找到自己的兴趣自然是最好,但也不排除有这样一种情况,仅仅是一种可能性很小的猜猜:你没有深入现在本职的工作,只是将一时对python的好奇过分的夸大,刚开始学编程语言的时候,能实现一些简单的功能,的确好玩,但若作为你将来的主业,不免艰辛和枯燥,你准备好了吗?有的时候找到新方向,追随自己的心愿是一种勇气,但懂得放弃,做生活的减法,也是一种勇气。
reorx
2012-09-09 15:22:08 +08:00
对 Python 进行系统性的学习,以 Python 所要求和推荐的规范方式完整地实现一个项目。真正的认识它,了解它,你才会有所论断。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/47257

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX