算法重要,但并非全部,并非所有人的选择

简介: 【来信】  贺老师,你好。我是一名软件工程大二学生,两年下来,我学习成绩还算不错,也自学了一些东西。大一的时候我自学了C++.NET编程,然后看着别人写的炸弹人的代码自己也写了一个(感觉像是抄了一次),大二上学期的时候感觉对嵌入式开发有些兴趣,所以自学了Intel的IA-32汇编和LinuxC编程,但是我学的这些都不是很深,特别是学LinuxC的时候,因为对操作系统不熟悉所以很多进程方面的东

【来信】

  贺老师,你好。我是一名软件工程大二学生,两年下来,我学习成绩还算不错,也自学了一些东西。大一的时候我自学了C++.NET编程,然后看着别人写的炸弹人的代码自己也写了一个(感觉像是抄了一次),大二上学期的时候感觉对嵌入式开发有些兴趣,所以自学了IntelIA-32汇编和LinuxC编程,但是我学的这些都不是很深,特别是学LinuxC的时候,因为对操作系统不熟悉所以很多进程方面的东西当时也没弄懂。

  现在在自学Android,学完初级内容,打算深入学习的时候,却有师兄跟我说Android到用的时候学就可以了,平时不必花太多时间,有时间不如研究研究算法。本来我打算把《Android4 高级编程》这本书看完,然后再把Linux以前没看懂的部分再学一遍,但是因为老师和师兄们都很强调算法,现在我也有点迷茫,不知道到底该干什么,不知道是不是该继续把Android学下去,完成我的计划,还是要去研究算法(我对算法兴趣不是很大)。

  算法真的是比其他一切都重要吗?不知道为什么身边的人只是把LinuxAndroid这样的东西当工具用,认为不需要花时间学这些,果真如此吗?还有,我想知道一个软件工程的学生应该具备什么样的知识?

 

【回复】

  在我看来,你在大学前两年多方的试探,这是很不错的一种节奏(见“《逆袭大学》文摘——9.4 基础和应用的平衡中找到大学的节奏”),你可以继续按照自己的想法开展学习。

  算法在计算机科学当中是一个重要的部分,对于学习计算机类专业的学生而言,自然也是非常重要的基础。就软件开发而言,有些工作是算法密集型的,离了好算法不能做,深入学习算法是一名大学生专业能力训练的必要部分。

  然而,也有不少人将之扩大化和范化的现象。如果你已经有了自己的方向,且发现自己对算法并不算感兴趣时,算法方面的学习,做到了解,也就可以了。在应用软件的层面,有更多的工作,是业务密集型(实现应用特有的业务逻辑)和体验密集型(注重用户界面和交互功能)。这里有大量的工作要做。而软件开发不仅是写代码,包括项目管理、架构设计等很重要的事情,并非算法能力培养能解决。在这样一个大行业中,即使我们就盯技术,完全可以和有必要有一大批的人,在算法之外形成自己的核心竞争力,这是特色的体现。

  所以,你可以将之前学习由于阶段性使然没有深入的部分做完,再选择一项将来值得追求的方向,更深入地学习下去。现实当中,有人死学理论,不顾应用,还往往将做应用这样一件事情看得很低,完全是忽略了软件项目的复杂性的表现。如果在毕业前就能深入某一项技术,做这一方面的专家,我觉得是一件可以做的事情。

  如果从专业设置的角度,重算法还是重工程,或许就是计算机科学与技术专业同软件工程专业的区别。而就学生个体而言,选择可以由兴趣而定。作为软件工程专业的学生,你的选择是可以的。接下来的学习中,计算机科学、计算机组成和体系结构等方面的基础,还是要学,而自己的学习投入,在具体的技术之外,项目管理、软件工程,以及人文方面知识的学习和体验,可以更多一些。





==================== 迂者 贺利坚 CSDN博客专栏=================
|== IT学子成长指导专栏 专栏文章的分类目录(不定期更新) ==|
|== C++ 课堂在线专栏  贺利坚课程教学链接(分课程年级) ==|
|== 我写的书——《逆袭大学——传给IT学子的正能量》    ==|
===== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =====


目录
相关文章
|
5月前
感觉和身边其他人有差距怎么办?
感觉和身边其他人有差距怎么办?
33 0
|
7月前
|
存储 安全 网络协议
探寻未知:揭秘子域名收集的秘密艺术
探寻未知:揭秘子域名收集的秘密艺术
|
11月前
|
开发者
通过 HUMANS 项目,传达出空间适合所有人的信息
通过 HUMANS 项目,传达出空间适合所有人的信息
|
算法 数据安全/隐私保护
(*长期更新)软考网络工程师学习笔记一—RSA算法详解
(*长期更新)软考网络工程师学习笔记一—RSA算法详解
【点评必看】这道 Hard 到底难在哪里?大概是难在考察的是违反“人性直觉”的内容吧 ...
【点评必看】这道 Hard 到底难在哪里?大概是难在考察的是违反“人性直觉”的内容吧 ...
|
智能硬件
周鸿祎:不符合人性的需求都是伪需求
  在移动互联网时代,产品的可选择性实在太大,各类网站琳琅满目,App(应用程序)层出不穷,任何一个用户都会在网络上不断地进行切换和刷新。   乱花渐欲迷人眼,用户到底凭什么选中你的产品,并为之买单?   谈到这个话题,我不得不提到人性。一个好的产品,往往能够反映人性中最本质的需求,换言之,不符合人性的需求都是伪需求。最本质的需求是人类原始的本能欲望,在《圣经》中,人类有七宗罪:淫欲(lust)、懒惰(sloth)、贪婪(greed)、饕餮(gluttony)、傲慢(pride)、暴怒(wrath)和妒忌(envy)。一款好的产品,需要对人性做透彻的分析,才能完成其设计。且让我们分而论之。
239 0
|
存储 安全 机器人
关于机器人流程自动化 不可不知的十个秘密
机器人流程自动化工具通过添加可智能处理旧代码和有助于延长其使用期限的新图层,为遗留系统赋予了新的生命。许多机器人流程自动化工具还可以由非编程人员来部署,从而使那些使用旧工具感到苦恼的人能够通过拖放新图标来改善其工作流程。通过选择恰当的工具和实现方法,任何能够编写电子表格宏的人都可以使用机器人流程自动化来简化工作流程。但在机器人流程自动化为您的系统带来的这些好处背后,还隐藏着一些问题,随着时间的推移,这些问题可能会带来麻烦。
160 0
|
UED
探究用户心里的秘密,互联网营销
  无论是产品经理、前后端开发人员、架构师、数据分析师,我们都是为用户服务的。在社会这个大家庭里,我们都是用户。我们都是用户却各有所好。你喜欢这个,我喜欢那个,也有我们都喜欢的。那么在我们的心理隐藏着什么样的秘密呢?这些常态和非常态是否有章可循呢?   心理学是一门“心”的学问。
847 0