英文原文:You Are Not a Software Engineer (Yet)
如果你以写程序为生计,那你有机会称自己我软件工程师。 但也有可能你称不上。
就我而言,我毕业于一个工程(软件系统)学位并且时常很自豪的称自己如是。
但是,只有编写代码多年后我才明白,称自己作为一个工程师是一个正确的,不是来自大学,但却必须要获得的东西。
有多少软件工程师可以称他们是和阿基米德,亨利福特或者尼古拉特斯拉范畴的?
把我们的眼观放低一点,有多少人可以说他们做产品至少有 10 年?又或者 5 年?又或者是 5 个月?
切莫焦虑
倘若你并未赢得自称工程师的资格,切莫焦虑,我相信你是可以做到的。
我认为作为软件工程师最重要的要素就在于他们(真正称职的软件工程师)是极富原则性的,并且能够做到真正坚信他们总能取得进步。
通过自律,你明了自己的立场及其原因。或许更重要的是你能够与他人分享。
当你坚信你能不断取得进步,那么你将持之以恒地倾听他人、向他人学习,激励自己变得更好。
尽情阅读吧!
不断从价值优化的角度来检查你度过的每一天
程序员每天多的让人惊讶的时间浪费在没有意义的事情上,坦白说,是在作无用功。
如果一件事不会给你或者你公司带来任何价值,那为什么要花时间在上面呢?通常这种事情是会议、聚会或者"流程之类。
最近我一个朋友向我抱怨,自从升为团队领导之后,自己几乎没完成任何一件事情。
所以他决定回顾检查自己的时间。他发现一周之后,自己仅仅在工程方面花的时间总共 20min。
现在,如果他的其他的时间是花在指导或领导团队上倒是还好,但不幸的是大部分时间花在其他人、其他团队、其他部门等等。
请不要把我的观点误解为合作和交流完全没必要。
我的意思是作为工程师,我们的重点是找到最佳解决方案。这才是工程师要做的。
比如说:
如果会议是关于同步的(团队成员之间同步进度),那就积极一些。把你的进度状态发布到 wiki、内部博客或者邮件列表。让其他成员及时了解你的进度,适应大家的节奏。
如果你是团队或者部门领导,并且感到在会议上花很多时间去解决小问题,那就放权,交给下属。这不仅仅腾出你的大量时间,而且让团队成员积累更多经验,更快成长。请务必授权下属进行部分或者全部决策,否则,解决问题的人会要求你不断参与进来。同时务必要支持下属的决策;他们需要自信来进行决策,表达你意见的时候不要到这怀疑的情绪。
如果你老板想要指导哪些正在做或者哪些已经完成,那最好找个工具汇报这些事情。建立一个随时更新的任务列表,这是一个团队成员花一点点精力就可以做到的小任务。
如果流程要求你用 5 个步骤完成任务,但大部分是麻木机械的工作。(比如生成改变日志或者发送邮件提醒),那你就发挥你作为码农的特长,尽量自动完成。想一下,如果有个简单任务要求你每天要花 10min 完成。那你花 2 小时写个脚本把这个任务简化到 2min,浪费的时间只需要 15 天你就赚回来!!!
发现自己经常由于 email 或者即时通讯消息所干扰分心?那就关掉这些应用!作为程序员我们的工作需要集中注意力,任何小干扰都可能搞乱我们的流程,打乱节奏。这种在电脑上通过文本的交流方式有一个最大的优点,那就是异步;这意味这你可以在任何空闲进行交流。一些人采用番茄工作法(http://pomodorotechnique.com/ )来解决这个问题。虽然我建议你试试,但是这并不适合每个人,我试了试觉得很难坚持。(译者:卧槽,那你还推荐)
生活于快节奏的环境之中,我们极易兴奋于那些就展现在我们面前的事物,并且不停地从一个任务奔向另一个任务,而不去思考为什么这样。
我强烈建议您,时不时回头看一看、问一问:
我的日子是如何逝去的?
我今日是否致力于最重要或最有价值的事情?
我是否本该更有效地做别的什么事?
最后,(我要说)珍惜属于你的时间,你可以开发出更好的解决方案:用你的技能使生活更加美好!
内容来自网友回答怎么说呢,java就是根据c++而来的,所以你要是学会c++学java就不成问题了。对于你说的那些东西当然都可以做。再就是学校学的当然不等同于工作的,而且差距很大,所以你要精通一个方面的东西是最好的。无论你做什么,数据结构都是很重要的,做任何程序都无所谓是算法加数据结构,所以说大学学的理论课程还是有作用的。学校讲的是理论,不侧重与哪个具体的语言,所以说你要学哪个,一个是看你的爱好,另一个就是c+