V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ipwx  ›  全部回复第 191 页 / 共 201 页
回复总数  4002
1 ... 187  188  189  190  191  192  193  194  195  196 ... 201  
2017-06-29 16:40:41 +08:00
回复了 rensung 创建的主题 Python 为什么 python3 不能友好地兼容 python2?
@gouchaoer 我的意见是这样的:我比较喜欢 Python,不是因为它语言有多好,而是因为它能很快完成我要做的一切事情。你看我要做的事情从 Web 开发(“写博客”遗留下来的爱好)到运维脚本(管实验室的服务器要用)到写深度学习的模型和在集群上调度实验脚本( PhD 的本职),样样都有。

我是不想开发个博客或者类似的 Web 应用就要去熟悉一下 C#、Java 或者 PHP 的程序栈,毕竟这只是我的爱好而不符合我的职业规划;我也不想学习 Bash 那种反人类的语法;至于深度学习就更别提了,靠谱的库全是 Python 的。

所以我喜欢用 Python,因为只有它能让我只熟悉一门语言就搞定所有事情。要不然,我还得同时维护好几个语言自己经常用的轮子代码吗?
2017-06-29 16:08:24 +08:00
回复了 rensung 创建的主题 Python 为什么 python3 不能友好地兼容 python2?
@gouchaoer 首先,(2,3) 是没有问题的,和 (2,3,) 同义。(2,) 才是强制要写的。你肯定记错了。要不就是 f((2,3)) 的用法。但是 f((2,3)) 也可以不加最后那个逗号呀。

其次,我实在是不懂你为什么这么仇视 Python。我从学习 Python 以来已经六年了,学会写 2&3 兼容性代码、setup.py
以及完善的单元测试也已经两年了。我用 Python 写过很多东西,从脚本到网站( Flask + Webpack + Vue.js ),再到深度学习的模型( TensorFlow ),体验一直都不错。

我现在写 Python 的代表性作品可以参考 https://github.com/korepwx/mlcomp/tree/devhttps://github.com/korepwx/tfsnippet/tree/dev。另外我还给 https://github.com/thu-ml/zhusuan 贡献了点代码。

(事实上 TFSnippet 就是我在用 ZhuSuan 的过程中感觉有些东西写不出来,所以仿写并改写的一个轮子)。
喜欢 Python 的人,应用场景和 Java 派系完全不一样好吧…… 无论是 Data Scientist,还是一对开源小项目,哪个符合软件工程的流程了?
@ssynhtn 如果堆栈和性能无关,那你了解它干嘛?自娱自乐嘛?
@jadetang All right,我说的那个优化针对的是堆上面对象的优化。当然,我不写 Java,只是对 JVM 上面 GC 神调教的案例略有耳闻。如果你有兴趣,我觉得你可以去查找一下这方面的资料。
如果是科班的话,入门 C/C++ 就是要手工 malloc/free 堆内存的。再往后,操作系统甚至需要知道 malloc/free 的算法。

不是我太严苛,楼主如果连堆和栈都不知道,怎么知道为什么尾递归不好?怎么优化大型服务器 Java 程序,免得 gc 破坏实时性?堆和栈,这是基础中的基础,如果连这类基础都不愿意去知道,你写得程序只能停留在 getXXX/setXXX 以及拖几个控件的程度。
2017-06-15 09:40:19 +08:00
回复了 gunshot 创建的主题 程序员 高考完的女孩怎么入门 CS?
先学点数学,能坚持下来不觉得枯燥,再说学编程的事情。
2017-06-15 09:39:04 +08:00
回复了 PEP4JASON 创建的主题 程序员 我可能是个假程序员(面试经历)
Session 是种基础概念,不是类库里面那个 session 对象或者类。用 token 也是在维持一种 session,用 cookie 照样是维持 session。

讲道理楼主的回答让人强烈感觉到他是知其然不知其所以然,无论是 session 还是前面的数据库。自身硬件不过硬,在应聘这个双向选择的过程中,被拒还不行吗?
2017-06-13 10:46:37 +08:00
回复了 leafonsword 创建的主题 macOS 快向 Zoc Terminal 提建议吧!
@keepsmilence JetBrains 全家桶支持自动同步。。。
2017-06-13 09:22:43 +08:00
回复了 quietjosen 创建的主题 Python 0612 - 我入门 Python 后总结的基础教程
建议学习 Python3。写库兼顾 2&3 的话,一定要以 3 的思维去写,用 six 去兼顾 2。

另外不建议字符串常量用 u'xxx'。根据我的经验,除非你写 web framework,或者常量要用中文,否则直接用字符串最好( 2 下面解释为多字节,3 下面解释为 unicode )。不然会碰到各种奇怪的 bug。
2017-06-11 15:55:56 +08:00
回复了 jimages 创建的主题 问与答 CS 大学新生选电脑,希望大家给点意见。
另外,确实用不用 mac 因学校而异的。我校 THU 没有劳什子的客户端限制,网页就能登录。作为 cs 学科,大部分作业报告也可以交 pdf (所以可以 markdown 和 latex ),没有 office 的限制。看 ppt 的话,office for mac 2016 已经够了,而且还是学校批量授权。课程用的编程环境也基本不牵扯到 windows only,第一门编程课、以及算法课的官方环境都是 gcc。另外 THU 也没有什么 java, php, mfc 之类的水课,所以用什么系统都是可以的。
2017-06-11 15:52:48 +08:00
回复了 jimages 创建的主题 问与答 CS 大学新生选电脑,希望大家给点意见。
@oroge 搞 ai 特别是 deep learning 的,再好的本子都救不了。服务器才是正确的选择。当然,自己攒 GTX1080 固然可以,可进实验室用实验室的资源,才是正道中的王道。
2017-06-11 14:17:23 +08:00
回复了 jimages 创建的主题 问与答 CS 大学新生选电脑,希望大家给点意见。
另外 cs 的话,第一年老老实实学点数学。当然双线操作,同时学数学和学编程也是不错的选择,但是别把数学丢掉了。至少微积分、线性代数、概率论得学得好一点,可以这么说,这三门学科不学好,将来你只有码农一条发展道路;但是学好了,你的路会多出来很多的。

别信人家说什么死命学编程,学一堆库,搞一堆项目的说法。没有相应的项目需求,没有带你的项目组长,你现在捣鼓的库大部分都不是最佳的 industry practice。还不如老老实实跟着学校的指导学数学,要知道过了这村就没这店了。
2017-06-11 14:13:47 +08:00
回复了 jimages 创建的主题 问与答 CS 大学新生选电脑,希望大家给点意见。
刚上大学千万不要配台式机,否则你的结局就是宅寝室四年。
你竟然看得下去?我现在除非项目需要,不然任何一种新语言的“书”都是看不下去的。而当项目需要的时候,看什么书啊不要怂直接上。
2017-06-10 13:50:44 +08:00
回复了 czy 创建的主题 问与答 高考考完啦,各位前辈有什么忠告
Thomas Calculus,先试试看吧。如果觉得数学不是那么枯燥,可以考虑走 ML 路线。
2017-06-09 19:25:57 +08:00
回复了 SimbaPeng 创建的主题 Python Python3 里的 dict 是有序的吧?
想要有序,请使用 collections.OrderedDict
最后一个,补充一条:其四是 Native Library 绑定。包括 Cython 的混合编译器,你可以写自己的 Native Code。或者现成的比如 NumPy。不要小看 Native Library 这一条,它会从根本上改变你写程序的思路。比如你原来习惯写 for 循环的,因为 Python 自身很慢要依赖 Native Library,你不得不把要做的操作搞成 batch operation,然后用 Native Library 一并执行。

比如用了 NumPy,你写一个分段函数 f(x) = x/2 (x^2==0) ; 3x+1 (x%2==1)。当 x 是一个大数组的时候,你会选择这么写:

f = lambda x: ((x / 2) * (x%2 == 0) + (3*x + 1) * (x%2 == 1))
print(f(np.arange(N)))

因为 for 循环真的很慢,if 判断也很慢,所以哪怕你用 NumPy 把操作变成了 O(4N),也比用 Python 写一个裸的要快得多,当 N 很大的时候。
我觉得像 pickle 这种只能算小技巧,用它可以写程序,不用它也能写差不多程序。

Python 里面真正影响深远的特性,会真正影响整个程序的结构。首要的一个特性是 GIL,这导致了 CPython 写多线程就是渣渣,所以众多网络库走了 coroutine / multi-processing 的路子。coroutine 的代表是 gevent,multi-processing 可以算上各种 wsgi 容器,比如 uwsgi 和 gunicorn。

其二可以算上 Threading Local Storage,包括 Flask 的 request context,TensorFlow 的 default graph / session,等等。这是一个设计技巧,可以让你的程序在 coroutine 或者 multi-threading (有时候可以用,比如 TensorFlow 大量使用
C++ 绑定,在进入 C++ 程序段的时候会释放 GIL )的 context 下面,把一些全局变量当做单线程环境使用,是一种设计上的抽象。而且该特性对 gevent 之类的 coroutine 是透明的。

其三可以推 monkey patch。比如 gevent 可以对整个 Python 进程进行 monkey patch,使得所有 socket + threading 的多线程程序透明地转化为 socket + coroutine 的程序。
1 ... 187  188  189  190  191  192  193  194  195  196 ... 201  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1206 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 50ms · UTC 17:41 · PVG 01:41 · LAX 09:41 · JFK 12:41
Developed with CodeLauncher
♥ Do have faith in what you're doing.