长按二维码关注

关注二维码

感谢前辈、校友及各位同学的信任,因为大家对计算机相关技术同样的热爱、对Python等语言编程一样的兴趣,在大家共同努力之下,才有了此次“经验交流”座谈会。

某高校某重点实验室研究生交流

背景

应西安某高校某重点实验室教授委托校友的邀请,与实验室研究生分享编程心得及职业规划,特别针对Python软件开发流程及相关就业情况做整体介绍。

历程

接到这个邀请,荣幸之余略感惭愧。

荣幸的是学术高人不以笔者的雕虫小技“卑鄙”(取自《前出师表》中“先帝不以臣‘卑鄙’”);惭愧的是笔者远非“专家”更非“成功人士”。

然,工作八年,的确有些许浅显却不失诚恳的感悟想跟在校生聊一聊,特别是计算机相关专业的。甘愿献丑、希望能起到抛砖引玉之功效。

此次并非针对某种技能的培训,而是试图理清计算机相关专业在校生的若干共性困惑,尽管如此,涉及到编程事项,还是会以Python语言为例阐述。

与卿共勉

引述庄子:

吾生也有涯,而知也无涯。以有涯随无涯,殆已;已而为知者,殆而已矣!
为善无近名,为恶无近刑,缘督以为经,可以保身,可以全生,可以养亲,可以尽年。

笔者而立之年才始知首句,之前总觉得自己“无限可能”、“无所不能”,近年明显意识到很多方面存在勤无补的“天花板”;至于“善恶养生”,目前还不敢评述。

具体地说,就是在计算机技术这条道上,一定要明确方向、坚持不懈才有“通”的可能,否则,犹如瀚海迷途。

这个算是给定了总基调。

心窝的话

  • 珍惜宝贵的时间和创造力
    • 可以无忧无虑的学习是幸福的事情,大学是正式承担家庭和社会责任前最后时间
    • 世界上大部分科技成果都是在二十出头的年纪取得或者奠定基础的,这个年龄段最具创造力
  • 珍惜缘份
    • 老师
    • 校友同窗
    • 恋人
  • 第一份工作很大程度上决定之后的人生
  • 校招的要求其实很低
    • 主要课程成绩不是差的离谱
    • 有自己的思考
    • 小项目的独立实现

利器善事

一定要将自己的行为习惯和普通用户区别开。

发现很多同学的个人计算机上,充斥着各种小份额浏览器、各种聊天终端、各种杀毒或网络安全部件等,却看不到一种优秀的客户端、集成开发环境等。

脱离Word就不能做文档。

  • 尽可能地接触自由网络(脑补)
  • 内事不决问百度、外事不决问谷歌
  • 浏览器至少Chrome/Firefox要有要用
  • 集成开发环境起码了解三五款、熟练操作一款(笔者不是极端的字符编辑器拥趸)
  • 习惯Markdown文档和Tex排版
  • 学会通过邮件求助

资源分享

  • GitHub
  • CSDN/CNBLOGS
  • PERSONAL-SITE

要讲的是,资源来自分享。

其实很多优秀、大型、著名、开源项目的贡献者,并非全部大神。

勇敢地参与,自信地将自己的想法、作品分享出来。

别人点赞,增添动力;别人点评,拓展思路。

要像关注微信朋友圈一样重视学习心得积累!

数学外语

数学

有句名言:

I admire the elegance of your method of computation;
it must be nice to ride through these fields upon the horse of true mathematics
while the like of us have to make our way laboriously on foot.
— Albert Einstein

就连爱因斯坦都如此盛赞数学之美:数学高超如骑兵奔驰、数学渣渣似步兵难行。

数学是限制笔者编程技能进阶主要拦路虎,数学水准决定一个程序员的认知水平,毕竟“程序=数据+算法”。

近日,笔者也在复习线性代数的内容,想问大家为什么会有引入线性代数的理论和方法?

回想最早学习“求二元一次方程组的解”,书上讲的“消元法”……

幸好只是“二元”,如果是“百元”呢,恐怕光把这些推倒式写出来都非常困难。

外语

语言是沟通的桥梁,多掌握一门语言、多拓展一条交流的渠道。

想要原汁原味地理解原作,就必须理解原作的语言。

如前所述,既然当代计算机技术贡献最大的美国,那么英语水平决定一个程序员获取文献资料的新鲜度、检索交流求助途径的广泛度。

插曲

这点会上遗漏了,这里补上。

大学期间,最具一般性的专业课应该是“信号与系统”,其中有个“奈奎斯特采样定律”,很多同学对“采用频率必须是信号最大频率的两倍”铭心刻骨,却不能自发思考“已知信号具备某种规律可以违例”。记得很清楚,当时教材有道课后习题,全班一百二十来号,只有笔者一人答对,就是因为别的同学(包括日后读到博士的)都硬套教材规条。

这里需要解释的是,并非“奈奎斯特采样定律”不严谨,而是此时仅作这样表述,正如小学生低年级教材仅限定在自然数域一样。

如何入手

带着问题学习,通过实战学习。

  • 导师的课题
  • 同学朋友的诉求
  • 自己的想法
  • 课后习题

都可以是很好的目标。

与其浪费精力纠结现在无法把控的、不如动手实现力所能及的!

一个Python小样

故事是这样的:春节前笔者去朋友店里理发,朋友抱怨说自己小店会员记帐、纸笔勾画费事,请求帮忙做个应用程序;年后笔者业余累计加班数小时做了个小项目。

讲这个东西,不是说它有多么优秀,主要针对初学者,说明如何做一个软件项目。

membership

  • 设计
    • 界面
    • 数据结构
    • 操作逻辑
    • 功能:注册、登入登出、升级、服务设置(吹拉烫染)、优惠、结帐、历史账单,等等

这些都要落实为详实的文档。

  • 编码
  • 测试
  • 发布
    • 商业的如何定价,需要市场调研
    • 开源的何种授权,需要了解社区常用许可

期间还需要与用户若干次地沟通,前期的诉求、中期的偏差、后期的反馈,通过迭代收敛。

Python's Tomorrow

无限可能(infinite possibilities)!

目前的几大热点领域,都可以看到Python的又粗又长的身影。

  • 云计算
  • 物联网
  • 区块链
  • 人工智能

QA

  • 所学会过时否?
    • 原理不会过时、语言不易灭亡,平台可能过时、框架也许废弃。
  • 是不是只掌握Python就足够了?
    • 目前流行的编程语言,其中优秀的代表大致分为两部分:C/C++、Java、GoLang一组,Python、JavaScript、PHP一组。两组中最好能各掌握一个,相互取长补短。
  • 学习图像处理有哪些工作岗位?
    • 必须发散思维,学以致用,扩充对图像的理解——音频、文本甚至用户消费习惯数据都可以用图像处理的方法来建模分析,可以做数学抽象、可以做平台框架、可以实现具体的模块功能。
  • 有什么短期内提升编程能力的方法?
    • 专项培训,付费应该可以理解,毕竟别人付出辛劳。
  • 网上抄来一段代码本地跑通就算学会了么?
    • 模仿是学习的第一步,别人公开的东西用来个人学习一般是无害的,否则一定要征得作者许可;抄的时候,一定要弄懂每一句代码的用意、输入输出的数据结构,用添加注释的方式走读代码不失好方法,跑通、思考并改进以致可以独立实现相同功能。
  • 对编程功底薄弱的同学更推荐C++和Java中的哪一个?
    • 显然Java啦!
  • 视频教程好还是文档教程佳?
    • 这个要根据内容来定:偏重操作性的自然是视频教程好,先这儿后那儿、跟着走几遍;偏重原理性的当然是文档教程佳,否则论文不必写文档、录视频就好。
  • 可以推荐一些Python学习资料么?
    • 有本《Python核心编程》很棒,也可以关注YoungPython的相关内容。

工作机会

根据行业分布,能去北上广深杭就尽量去,尽管竞争更激烈,然而相对更公平。

在校尽量参加一些企业组织的比赛,难度其实不大,一般二等奖以上及三等奖排名靠前的选手可以乘坐直通车、三等奖排名中后的选手面试也会加分。

各位同学的优秀实践

  • 向能人请教、不闭门造车
  • 学而时习之
  • 做好时间规划

长按二维码打赏

打赏二维码
返回话题列表
陕ICP备14011708号陕公网安备61019002000333号