经院不是一个特别重编程的学院,但是在这个信息时代,掌握程序设计的技术和艺术还是非常重要的。
首先强调一点,编程语言只是工具,重要的是背后的思想,千万不要陷入工具的选择,学会了思想方能融会贯通。
基础
从这届(2019级)的培养方案上的计算机类来看,经院学妹和学弟为了毕业必须修读大计基,然后在 C程序设计基础
和 Python程序设计
之中至少修读一门。培养方案的推荐修读时间是大计基大一上,其他两门大一下。(注意课程名称,浙三本很多课程名字很像,例如 C程序设计基础
程序设计基础
程序设计专题
,讲的其实都是C,名字也很像,但不是要修的课程)。
大学计算机基础
(简称是大计基就对了)。讲一些计算机的比较基础的概念。小白可以听听,如果稍微懂一点的就滑滑水就好了,课程讲的内容都比较基础。
关于C程序设计基础
,正如基础二字所说,讲的是比较基础的内容,在没有任何编程经验,没有接触过编程语言的情况下非常建议选。因为这可以从0开始培养你的程序设计思维和技巧。如果你没有编程经验(VB在此不当作编程经验),那建议大一下选这门课。
关于Python程序设计
,很多人说它简单,是因为它的语法简单,对初学者友好,但是从考题上来看也没有比C简单。和C一样,很多考题会出的比较刁钻,而且对于没有编程经验的人来说,上课内容并不友好。如果说C考题范围是少而精,那么Python考题范围就是多而广。所以我建议没有编程经验的人不要直接上Python。换句话说,如果你没学过C但是学了Java或其他语言也是可以直接上Python的。
未来
关于经院以后要用到编程的方向,主要集中在大数据的处理和分析,在这方面以前主要是R语言
的天下,因为R语言就是为了统计和计量而设计出来的一种语言。但是在这两年,Python
有逐渐替代R语言的趋势。因为随着各种库和包的增多,Python
有了越来越多数据分析的工具,而且在人工智能,机器学习方向更有优势。最新的Julia
语言目前看来也很有潜力,但尚不成熟。若假以时日,可能是大数据处理和科学计算的更合适的语言。
总结
综上所述,我推荐的针对大多数人的学习路径是:
大一上 | 大一下 | 大二下 |
---|---|---|
大学计算机基础 | C | Python |
从毕业的角度来看,只要 C 和 Python 任选一门即可,不过,多学一点总没坏处不是嘛?
当然经院毕竟不是计院,不是每个方向都要用到程序设计。为什么不建议大一下直接上Python,是因为,从目前来看,Python的考试题目相对于C来说过于刁钻,这不是两种语言的问题,完全是浙大出题的问题。
不上 C 直接怼 Python当然是可以的,只是如果你本身编码实力不强的话容易考不好(还是那句话,题目出得太差了,不是你能力差)。
上了C不上Python也是可以的。但是一定要自学Python。有了C的基础,自学Python也是相当容易的。
补充
如果你对这方面非常有兴趣的话,你还可以在大二继续学习数据结构基础
,面向对象程序设计
,数据库系统
和 Linux
。再往上的话,可能就没有太大必要了。
编程也是非常适合自学的。而且非常建议自学。可以看看中国大学MOOC
上翁恺老师
的C
课程。
上课里教的只会是皮毛,仅仅在于语法的掌握。如果要想很好地运用一种语言,想能完成一个项目,还需要非常多的后续自学。
暑期充电,其实个人更建议学一些诸如Git
、Markdown(本文即Markdown所编辑)
、Linux
甚至是双拼
这些与计算机相关的比较容易上手的小技巧或是小工具,学习成本低但是很快能看到收益。
如果你是OI竞赛
,ACM竞赛
的大佬,那我这些话就统统无视就好了。
有关 Python
前文已经讲了很多 Python ,但是考虑到它的热度和它的江湖地位,我觉得有必要把它单独拉出来谈谈。
首先亮明观点,我建议每一个人都要学会Python3, 但是不一定要跟着学校里的课上。
为什么要学 Python3 ?
经济学院里用到的编程,一般都是计量分析里的,换句话说就是数据分析。数据分析有哪些软件或者语言呢?一些课使用eviews
,一些课使用stata
,一些课使用SAS
,还有一些使用Matlab
和R
。语言没有好坏,但是前面几个多少显得有些老态龙钟,而Julia
有显得太过前沿。所以目前的建议的最好的选择就是学Python
,而且是更新的Python3
。
Python
强在哪?它以非常简单的语法解放了劳动力。譬如对于目录和文件的批量操作,对于excel
文件的批量处理,都大大降低了门槛,解放了疲惫的双手。但是它更为强大的就是在科学计算和数据科学上的应用。像机器学习,深度学习,自然语言处理等等时髦的人工智能上的应用,Python3
是最强大的平台和最广阔的资源。
为什么不建议跟着学校里的上?
如果你是必修那当然上就完事儿了。如果不是必修的话,有必要斟酌一下。
我很不喜欢ZJU教Python的方式。它会注重于细致末节,语法底层,而不注重于实践。它不会教你PyCharm怎么装,不会教你Anaconda怎么装,只讲非常浅的debug,非常浅的OOP,甚至完全不讲非常基础的map(),reduce(),filter(),反而会考底层的内存池的缓冲机制。
所以我推荐自学。而且越早越好。
自学的资源?
问对人了。我对Python的教学和自学经过了很多的摸打滚爬,总结如下:
前提部分
- 计算机的常识,我默认你有了。至少在安装Python,调环境变量能够看着教程能跟上
基础部分
-
可以跟着廖雪峰的教程学,很好的教程
-
可以跟着骆昊的Python100天
-
可以查阅菜鸟教程当一本字典
书籍推荐
- Learn Python the Hard Way
- Think Python: How to Think Like a Computer Scientist
进阶部分
- Data Science from Scratch
- Python for Data Analysis
- Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems
- Deep Learning with Python
- Beginner’s Guide To Using PyTorch For Deep Learning
进阶部分就是一些数据科学相关的内容了。
关于我
- 多次参加丹青学园的C语言和Python语言辅导(其实是因为有工资拿)
- Github 上 Data-Analysis 项目协同开发者(和Will Koehrsen教授合作)
- Udacity 深度学习学位证书
- 求是潮技术研发中心 维护求是潮手机站安卓版
- Python 98/5.0
- 网易游戏实习
- 招商银行 Fintech 金融科技挑战赛全国百强(58名)
算是一个数据科学的竞赛,我的题目是一个时间序列分析客户借款还款日期。当然是用Python写的啦
- 浙江大学C语言趣味竞赛 二等奖
- 浙江大学信息安全挑战赛 62名
- 美国大学生数学建模大赛 H奖
写这些的目的是想请你相信我的推荐和“权威性”。
关于IDE和文本编辑器的选择
个人建议用IDE上手。
C
推荐新手用Dev C++,熟练后也建议尝试Clion,可能你要学如何配置环境。不建议直接用VS,过于臃肿,对新手并不友好。
Python
推荐新手用IDLE,熟练后也建议尝试Pycharm,可能你要学如何配置环境。对于经院来说,适合数据处理的Anaconda可能会是更佳的选择。但是我仍然建议使用Pycharm来写代码,而用 Anaconda来作分享。文本编辑器,个人选择是VS Code,不建议新手使用文本编辑器,因为配置环境会比较复杂。
开发环境的选择是次要的,只要自己用的顺手就是最好的开发环境。千万不要喧宾夺主,陷入纠结。
如果你看不懂上面这些,就无视掉好啦~