希望对入门级的程序员有所帮助,有时间不妨看看 &评论

 

毕业也有一年半的时间了,从大三开始实习的,实习让我学到很多。

本人毕业于一个普通的不能再普通的高校,所以这文章对于普通高校毕业的学生更值得读。

想成为好的工程师,你需要做什么?结合本人的经验,决定抛砖引玉。

一、 在校期间实习很重要

现在学校教育和社会需求严重脱节 ,所以一些校外机构红火了,我们学校的教育是应试型,害了不只是一代。当然有人会反驳,没有学校你现在还在牧羊呢?说得也没错,但是如果我们的教育不是应试型的,更适合我们发展,创造呢?那我们是不是会得很多诺贝尔奖。

公司招人一般喜欢尽快可以给公司带来效益,学校里学的只是一点点语法和一点点你自己也不知道什么用的算法(可能也忘了)。

总的来讲,在校期间的实习就是你的工作经验。

二、 思想周密谨慎

程序员需要这样的特性,程序犹豫一个精密的仪器,而这个仪器是由很精密的零件组成的。而程序员就是对这零件进行操作,搭配,从而形成这个仪器。

三、 不要有这个代码太简单了懒的写这个想法

这个想法会害了你,小事不做如何做大事,一屋不扫何以扫天下。这代码是简单很简单更上次差不多这样复制来复制去没意思,但是难得你又不会。

虽然简单,但是这次写你可能比上次更有体会,会对上次的代码进行优化,那也就是你写代码的能力在增强

如果你觉得复制来复制去麻烦,你可能会想办法把给写成类或者其他解决方法,使下次用到时可以直接使用,这时你又提升 了。人总是喜欢偷懒的,这偷懒能让你写出更好的代码,但如果偷懒不恰当,会让你成为“植物人”。

四、 追求卓越,追求完美

记住我们是工程师 ,是创造者 ,不是简单的进行零件搭配的工人。

代码如果可以写的更漂亮点那就写的更漂亮点,

算法如果可以写的更有效率那就写的更有效率点,

如果你觉得以前这代码太乱了,需要重构那就重构吧

不过以上这些事你们老板是不会知道 的,你也别让他发现,他们注重的是时间,什么时候能完成。但是如果出问题了,要责骂的是你。

五、 从客户角度思考问题

我们开发软件的目的就是给客户使用,客户不是程序员他们对软件上的看法是有不同的。

不要认为功能实现就好了,人机交互 也是很重要的。

不要用我们自己程序员的身份来想这个人机交互应该怎样,而应该从客户的角度。

这对于刚入门的程序员是个很重要的条例,但是很多人总是不以为然。

好了,就写这么多,如果能给你带来帮助就是我最大的鼓励,如果没有,我说上对不起浪费你宝贵的时间了。

原文出处:http://www.zhuguangnan.cn/blog/archives/608.htm

读《希望对入门级的程序员有所帮助,有时间不妨看看》有感

    也是cppblog一位同学写的文章,原文在这里
    其实总的来说这篇文章还是没什么大的问题,你看那五点粗字标题,就是在告诉你不仅要写好的程序,还要写有用的程序。不过进了公司老板很难给你写没用的程序的,这点就忽略了。紧扣着客户的需求写是好事,不过这跟广大的大学同学们还是没什么关系,所以最后一点就忽略了。咱慢慢看前面的四点。
    第一点说在校期间的实习是很重要的。这一点当然是对的,不过下面的论据有点问题。先看后面的。公司要能干活的人是真的,学计算机搞创新搞研究能拿奖那也是真的,只是拿的是图灵奖不是诺贝尔奖。这个诺贝尔奖有点问题啊,没有数学没有计算机(他老人家死得太早了,原谅他),所以数学和计算机就自立门户了。
    在校实习可以赚工作经验。为什么这么讲呢?(华南理工大学的师弟师妹在2009年的时候告诉我们,金山公司给实习,做的东西不会拿去卖的,你们做完就完了。道听途说,谢绝跨省。)一般大公司都会给你真刀真枪的东西。写的代码会被最终用户运行,修bug的结果也是被最终用户运行的。到时候会有一大堆人指导你该怎么做的,因为如果你写的代码太烂他们也不好意思把你的代码拿去用是不是。
   但是说学校教的东西与社会脱节就不好了。要我是校长肯定会拍案而起:“你们把学校当成什么东西了,Java速成班?”学校教的很多东西都是基础知识,根据《Teach yourself programming in 10 years(想看的自己去google)》,4年是远远不够成为一名优秀的程序员的。我们的确需要花大量的时间在基础课上面,譬如说掌握一两门语言和一点 API让你们可以做出真正有用的东西啦,数据结构,网络,数据库,编译原理,操作系统原理,等等等等。但现在的事实是很多高三的学生们在填志愿的时候还不知道自己学了计算机就会上了贼船,所以大量的人是大一的人才开始写代码的。4年当然不够了,所以在学习基础课的时候,我们还需要自己给自己出点难题,写点代码。在我看来,学校只需要保证一个几乎把自己所有的时间投入到代码中去的人能够找到合理的工作就好了。谁让他花那么多时间玩游戏的(其实我也喜欢玩,但我不会没日没夜的,写完代码才会玩的),那将来结果不尽人意只能怪自己了。
    需要注意一点的是,上面那句话最后几个字是“合理的工作”而不是“理想的工作”。为什么呢?这跟你学了什么东西是很有关系的。找到理想的工作还要有一个前提,跟学校无关的,就是你要挖掘出自己的兴趣所在。你往那方面不短拼命练习,就可以保证你可以只找你喜欢的工作,找到了当然是理想的了。如果你并不是特别喜欢写代码,但是也成为了一名不错的程序员的话,那只能说是合理了。好工作,但你不喜欢罢了。
    先总结一下,学校教基础,实用的自己去学。至于那些理论课有什么用,当你一个工程的代码写到了好几万行而且里面绝大多数都不是用来处理UI和 SQL的时候,你就能开始理解了。
    第二点,思想周密谨慎。文章下面只有一句话,其实说是说对了,只是泛泛而谈也不能当指南来看。当然我并不是在批评作者,说不定人家本来就不想写指南,只是 “读者有心”罢了。
    思想为什么要周密谨慎,因为计算机语言太低级,我们不得不去处理大量的其实跟我们要解决的问题没什么关系的细节。为了很好的掌控这些东西,就要学习学校教给你们的那些所谓与社会脱节的基础课啦。就跟学数学一样,就算你将来真的不用考计算微积分来吃饭,但好歹学那个东西还是提高了你的智商的。如果你有幸真的需要考那些基础课来混饭吃的话,那你就更会体会到它们的重要性了……说白了还是那句话,实践出真知啊。趁着还在读书的时候赶紧写代码,等到将来被HR鄙视就晚了。
    第三点,不要因为代码简单就不想写。文中的一个观点就是,同一个东西,你写的次数越多,你解决它的方法就越美妙。这就是为什么我们要不断地重写重构的原因了,代码速度越快,并且越容易维护的话,将来遇到需求变更你就不用觉得自己快死了一样。
    第四点就不评论了。记得在Channel9看一个叫eric的老头讲解haskell的时候,他不停的说要“Put your love in your code.”要有爱。为了能让自己的爱发挥作用,当然首先要让自己写出漂亮的代码了。
    总结:不要抱怨学校,高考志愿是你自己填的。总的来说文章的大道理还是对的,就是论据稍微有点什么,总之自己看着办吧。

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: