A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© admin 程序媛   /  2014-11-12 16:42  /  16135 人查看  /  244 人回复  /   11 人收藏 转载请遵从CC协议 禁止商业使用本文

今年已经是我成为软件工程师的第5个年头了。关于下面这些事情,我常常想,要是我刚入这一行时就知道的话那该多好,能少走不少弯路,取得的成绩也肯定比现在高。唉,往事不可追,所以在这里我想分享给大家,尤其是刚进入这一行的新手,请仔细考虑自己是否明白以下这8件事情。



1.良好的沟通能力。

工程管理是一个团队活动,哪怕有时候这个团队只有你一个人。由于每时每刻都有那么多事情需要相互了解,所以沟通就成为了最大的问题。90%的工程管理指的就是沟通。比如,我们得向人解释bug是什么?如何有效诊断?如何向大家完整地表述自己的复杂想法?沟通是项目成功最关键的因素。无效的沟通只会导致大量时间和精力的浪费。


2. 计算机科学的基础。

要想作为成为一名优秀的程序员,计算机科学的基础是必不可少的,但是,老实说,计算机科学和计算机工程真是两码事。不过要想成为优秀的工程师,就得有这个好奇心喜欢专研计算机的发展趋势和计算机的工作原理,包括深层次地了解新趋势可能存在的误区,以及一些替代性的解决方案,这样才有和其他工程师交流的资本。算法,除非是在面试中,其他时候用处不大。我的意思是,大多数情况下有类库就足够了。不过这并不意味着可以完全无视数据结构和算法。此外,推理代码和优化仍然很重要,尤其是在规模化的时候。


3.学会阅读代码。

写代码的重要性不用我说大家都知道,但是关于阅读代码这回事恐怕没几个人听说过。这可能是最值得掌握的技能之一了。关于这一条,到目前为止,我也在努力达到目标的过程中。话说,要是能有透过复杂现象看清事物本质的功力,那就离成为一个优秀工程师不远了。


4.学习UNIX和Linux。

这俩家伙几乎无处不在,所以很值得学习。它们能让我们通过命令行快速操纵计算机。如果有需要还可以安装Linux软件包和设置服务器。还能通过vi快速编辑(没错,就是vi。我本人就是Emacs用户)。还有一点很重要的是,UNIX实用程序能显著节省时间。此外我们还需要知道如何使用sed、grep、find、pipes,以及使用基本的bash/zsh写代码。


5.了解文本编辑器。

软件工程师都是玩转文本的高手。即便是现在已经被当做老古董的Emacs和vi,仍然是工程师需要学习的编辑器。两者至少得精通一个,因为它们的理念不同,而了解其中之一不但能让你代码写得更快,而且还不会被任何一种特定的环境所禁锢。不要仅仅是使用编辑器,要让它乖乖降服于你,自动化,符合自己的按键习惯,写出解决问题的脚本。


6.自动化思维。

因为复制/粘贴就是一种自动化模式,所以我们完全可以编写脚本来实现。而随机写入脚本会让编程更为有趣。也许只用30分钟就能搞定一天枯燥乏味的工作。自动化能缩减过程,也能让我们学到不少新的东西。


7.了解版本控制。

我喜欢干什么都用git。可惜,这么棒的点子,我竟然在学校的时候根本不知道,真是情何以堪。版本控制能让我们可以放心大胆地折腾代码,因为要是有什么行不通的地方,恢复原状或者取消键入就可以了。It’s so easy!


8.自己搞个小项目。

这非常锻炼人,哪怕有时候会觉得筋疲力尽,恨不得撒手不干。由于我们的产品是抽象的,不像造大桥那样能看到真真切切的成品,所以我们只能不停地编码,没劲透了。想不想专心致志搞一个自己中意的项目,像对待自己的孩子那样,尽自己的全力做到最好,在这个过程中,还能学到新知识,学会运用工具,而在工作中是不可能有这样的机会的?答案当然是YES了。

我自己也不是每次都能做到上面每一点的,但是我依然希望,在我刚刚跨入这个领域时,能有人将这些肺腑之言告诉我,我会真心不胜感激。


点评

可以的  发表于 2016-4-18 23:44
不错,挺给力的………  发表于 2015-3-21 22:36
长见识了,我觉悟还不够,得好好拜读~  发表于 2015-2-12 14:20
不错,不错  发表于 2015-2-4 20:00
三分钟涨知识阿~赞  发表于 2015-1-21 08:48

244 个回复

倒序浏览
我来打卡了~
回复 使用道具 举报
顶一个!!!
回复 使用道具 举报
理论能力决定深度,创造能力决定高度?
回复 使用道具 举报
楼主 讲得精辟
回复 使用道具 举报
赞一个!!!!
回复 使用道具 举报
好多东西都还没有接触到
回复 使用道具 举报
谢谢分享!
回复 使用道具 举报
linux 出于国家网络安全考虑,估计linux会在中国大行其道!
回复 使用道具 举报
况柷 初级黑马 2014-11-13 12:54:55
10#
代码版本控制确实很实用
回复 使用道具 举报
kale 中级黑马 2014-11-13 13:20:33
11#
讲的很好,学习了
回复 使用道具 举报
Yishan 中级黑马 2014-11-13 13:38:53
12#
程序员不断学习,不断沟通
回复 使用道具 举报
谢谢楼主分享,受益匪浅
回复 使用道具 举报
superb!!!!!!!!!!!!
回复 使用道具 举报
学习了。楼主大大大大的好人。
回复 使用道具 举报
路还有好长呢。。。顶个、
回复 使用道具 举报
吕静然 来自手机 中级黑马 2014-11-16 14:13:45
17#
谢谢分享!
回复 使用道具 举报
谢谢,您的提醒
回复 使用道具 举报
楼主,怎样把抽象的东西转换成代码,这个是不是就是编程的思维,怎样可以比较有效的拥有编程思维
回复 使用道具 举报
茂茂 中级黑马 2014-11-21 21:33:56
20#
作为初级阶段的我们,还有很多东西值得学习,加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马