① 作为一个程序员,最好选择用什么语言
一开始选择最容易学习的语言,语法简单,面向对象。
上手了可以多接触一些其他语言,当你有相当的编码经验时,选择语言就可以看自己的喜好了。
目前火热的语言有:
java,C#,Python,Object-C,javascript
② 如何用一句话证明你是程序员
1、女朋友就是私有变量,只有我这个类才能调用
2、爱上一个人,就是内存泄露-你永远释放不了
3、编码间,bug灰飞烟灭
4、这句话老值钱了:Helloworld
5、1+2==3
6、老板凑个整数吧,1024
7、你说第一句? 从0算起还是从1算起
8、不管写什么,没事在后面加个分号;
9、真的勇士,敢于直面惨淡的warning、敢于正视淋漓的error。
10、神马,我打开firebug看看那玩意怎么实现的。
11、一同学问我,软件外包是什么。解释了几句还没明白,遂想了一下:包工头知道吧?顿悟!
12、继承,是幸福的延续;重载,是幸福的重生。
13、情人就是指针,用的时候一定要注意,要不然就带来巨大的灾难。
14、擦,没同步就覆盖了
15、UTF-8还是GBK?
③ 有哪些关于程序员的心灵鸡汤
1. 在你责怪别人之前,先检查自己的代码
先想一想自己的假设和其他人的假设。来自不同供应商的工具可能内置不同的假设,即便是相同的供应商对于不同的工具,其假设也可能不同。
当其他人正在报告一个你不能重复的问题的时候,去看看他们在做什么。他们可能会做一些你从来没有想到过的事情,或者他们的做事顺序与你的截然不同。
我个人的原则是,如果我有一个不能确定的错误,那么我会先考虑是不是编译器的问题,然后再去检查堆栈是否损坏。特别是当添加跟踪代码会使得问题移动的话就更要这么做了。多线程问题是 bug 的另一个来源,有时候令人焦躁得简直想拔光头发,或者直接想摔电脑。当系统是多线程的时候,最好倾向于简单的代码。我们不能依赖调试和单元测试来发现任何一致性的 bug,所以设计的简单性是最重要的。
所以,在你不分青红皂白地去责怪编译器之前,先想一想福尔摩斯的这条建议,“一旦你排除了种种不可能,剩下的不管有多么难以置信,一定就是真相”。
2. 不断学习
我们生活在一个有趣的时代。随着软件开发逐渐遍布全球各地,你会发现有很多人都可以干你的工作。所以你需要不断学习以保持竞争力。否则,你就会落伍,停滞不前,直到有一天,这份工作不再需要你,或外包给一些更廉价的劳动力。
那么我们能做些什么?有些雇主很慷慨,会提供培训以拓宽你的技能。也有的人会说我没时间或者没这个资金去接受任何培训。所以,关键是要摆正心态,学习是对自己的负责。
这里有一些学习的方法。而且许多资源都可以在互联网上免费获取:
•阅读书籍、杂志、博客、Twitter feeds 和网站。如果你想更深入地了解对象,可以考虑添加到邮件列表或新闻组。点击这里通过邮件订阅《快乐码农》杂志
•如果你真的很想学习某一种技术,那么就亲自动手写代码。
•尽量与导师一起工作。虽然你从任何人身上都可以学到一些东西,但是从那些比你更聪明或更有经验的人身上,你能学到的更多。如果你实在找不到这样的良师益友,那么请继续往下看。
•使用虚拟导师。在网络上找你真正喜欢的作者和开发人员,阅读他们写的内容。订阅他们的博客。
•了解你使用的框架和库。知道事物的工作原理,有助于你更好地应用它们。如果你使用的是开源资源,那么你真的很幸运。使用调试器单步执行代码,以查看内部究竟是怎么回事。你也可以去看看那些确实比你聪明的人是如何编写和审查代码的。
•当你犯了错误,修复 bug,或者遇到问题的时候,试着去真正理解发生了什么事情。很有可能其他人已经遇到过同样的问题,并且发布在了网上。谷歌搜索真的很有用。
•学习东西还有一个好方法就是所谓的“教学相长”。当别人在倾听你的言语,并问你问题的同时,你也会学到东西。可以建立用户组或本地会议。
•为自己感兴趣语言和技术加入或启动一个研究小组(模式社区),也可以创建本地的用户组。
•参加会议。如果去不了的话,也可以在网上看,许多会议会将其谈话免费发布到网上。
•收听播客。
•曾经对代码库运行过静态分析工具,又或者查看下你的 IDE 警告?了解它们报告了什么,以及其原因。
当然如果你有《黑客帝国》中 Neo 那样的超能力,自然这一切对你而言不过是小菜一碟。但很可惜,我们都是普通人,我们需要时间和精力,以及不断的努力才能促使自己不断的学习。不过,你不必成天学习。只要你能有意识地花点时间去学习就可以了,哪怕每天一小时,有总比没有好。人活着不是为了工作,你还应该有自己的生活。
3. 不要害怕破坏东西
每个具备行业经验的程序员肯定参与过代码库岌岌可危的项目。系统很糟糕,并且改变这边总是会破坏另一边不相关的功能。每次添加模块,程序员只能想着尽可能少地改变代码,每次发布都胆战心惊。这座软件的摩天大楼随时有坍塌的可能。之所以改动代码会如此伤脑筋是因为系统太糟糕了。但是即使你知道系统出了问题,却又因为投鼠忌器,而不得不听之任之。任何一个外科医生都懂得,伤口要想愈合就必须得切除腐肉。虽然手术会带来痛苦,但绝对比任伤口发炎溃烂要好。
不要害怕你的代码。没有人会在乎当你捣鼓代码的时候有没有暂时破坏了什么东西。只要你做的改变不会让项目重新回到开始状态,就不会令人崩溃。投入时间重构,能让你受益于项目整个生命周期。这样做还有一个额外的好处是,由于你有过这种处理病危系统的经验,所以你对它应该如何工作非常内行。要善于应用这些知识,千万不要反感这些宝贵的财富。重新定义内部接口,重构模块,重构复制粘贴代码,并通过减少依赖来简化设计。你可以通过消除特殊情况显着降低代码的复杂性,因为特殊情况往往是因为错误的耦合特点导致的。慢慢地从旧结构过渡到新结构,测试一路同行。如果你想要一下子完成一个大的重构,那么往往会因为各种频出的问题而考虑中途放弃。
4. 专业程序员
专业程序员的一个最重要的特点是有责任心。专业程序员会为他们的职业生涯、预算、日程安排承诺、错误、技能技巧负责。一个专业的程序员不会将责任推卸给别人。
如果你是专业的,那么你就需要为自己的职业生涯负责。你有责任去阅读和学习。你有责任去时刻关注最新的产业和技术。但是许多程序员觉得这应该是他们雇主的工作。NO,大错特错。想一想医生?想一想律师?他们都是靠自己来培养和训练自己的。他们的下班时间多用在了阅读杂志报刊上。他们时刻关注着最新的资讯动态。所以,我们也应该如此。你和你雇主之间的关系,已经在雇用合同上作了详细的说明,简而言之就是:你的雇主承诺支付你薪酬,而你承诺做好工作。
专业程序员会为他们编写的代码负责。除非他们知道这些代码是有效的,否则就不会发布代码。现在,好好思考这个问题:如果是你,你会不会在不透彻了解代码的情况下就直接发布代码?专业程序员不希望 QA 找到任何 bug,因为这些代码都是经过他测试之后才发布的。当然,QA 依然会发现一些问题,因为没有一个人是完美的。但作为专业程序员,我们的态度应该是让 QA 找不到任何缺陷。
专业程序员也是好的团队成员。他们负责地对待整个团队的输出,而不是只顾自己的工作。他们乐于助人,善于向彼此学习,在需要的时候甚至会鼎力相助,为了项目前仆后继。
5. 充分利用代码分析工具
测试的价值是编程早期阶段就灌输给软件开发者的一个理念。近年来,单元测试,测试驱动开发和敏捷方法的兴起,证实了我们开始注重于在开发周期的各个阶段进行测试。但是,测试只是你可以用来提高代码质量的许多工具之一。
回过头去看,当C语言还是一个新事物的时候,CPU 时间和任何类型的存储都是非常宝贵的。第一个C语言编译器注意到了这一点,所以选择了通过去掉一些语义分析,来减少代码之间的传递次数。这意味着,在编译时,编译器检查到的可能只是可被检测到的 bug 中的一小部分。为了弥补这个缺陷,Stephen Johnson 写了一个名为 lint 的工具——它将从你的代码中删除一些没有价值的东西——从而实现一些已被它的兄弟C语言编译器撤掉的静态分析功能。然而,静态分析工具却因为可以给出大范围的误报警告和一些没有必要遵循的静态文体惯例的警告而倍受赞誉。
现在的语言、编译器和静态分析工具的设计和以前已经大不相同。由于内存和 CPU 时间变得相对比较便宜,因此负担得起编译器检查更多的错误。几乎每一种语言都拥有至少一个工具,用来检查风格指南的违规行为、常见问题以及一些狡猾的有时候可能很难捕捉到的错误,如潜在取消引用空指针。更高级的工具,如C的 Splint,以及 Python 的 pylint,是可配置的,这意味着你可以通过命令行开关或在 IDE 中,使用配置文件来让工具选择放过其中的哪些错误和警告。Splint 甚至还能让你在注释中注解你的代码,以便于更好地提示你的程序是如何工作的。
6. 关心代码
优秀程序员能写出好代码,这是毋庸置疑的。坏程序员……则不能(他们能写出好代码,就不是坏程序员了,哈哈)。他们总是在生产其他人不得不消灭的怪兽。你的目标是写出好代码,对不?那么你应该成为好程序员。
好的代码并不是凭空而来的,也不能靠运气然后恰巧让你瞎猫碰到死老鼠。为了获得良好的代码,你必须努力的改进。过程是艰难的。但是如果你确实关心代码的话,那么你一定能收获好代码。
仅靠技术并不能成就好的编程。我碰到过一些非常聪明的程序员,他们能够产出令人印象深刻的算法,能够熟记语言标准,但却写出了最可怕的代码。这种代码,阅读起来很痛苦,使用起来很痛苦,修改起来更是令人痛不欲生。我也碰到过一些非常谦逊的程序员,因为坚持简单的代码,所以写出来的程序更优雅,更易于表达他的意思,和他们工作非常愉快。
基于我多年的软件生产经验,我得出的结论是,差强人意的程序员和伟大的程序员之间的真正区别是:态度。好的编程在于专业的方法,以及一种竭尽全力希望写出最好软件的期望。
要成为一个优秀的程序员,你必须对自己的代码负责,真正关心代码——养成积极向上的心态。伟大的代码是由大师精心雕琢的,而不是由那些马虎的程序员胡乱写出来的。
④ 写给职场新手程序员:缺乏工作经验怎么办
多做项目,多思考</SPAN><SPAN style="mso-bidi-font-size: 10.5pt" lang=EN-US><o:p></o:p></SPAN></FONT></P>
<P style="TEXT-ALIGN: left; TEXT-INDENT: 21pt; MARGIN: 0cm 0cm 0pt" class=MsoNormal align=left><SPAN style="mso-bidi-font-size: 10.5pt" lang=EN-US><o:p><FONT size=3 face="Times New Roman"> </FONT></o:p></SPAN></P>
<P style="TEXT-ALIGN: left; TEXT-INDENT: 21pt; MARGIN: 0cm 0cm 0pt" class=MsoNormal align=left><FONT size=3><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不要害怕做事,刚毕业的同学最缺的就是工作经验,乱七八糟的项目能让你很快就了解了一个公司的业务与使用的技术,并且可以多接触同事与客户。</SPAN><SPAN style="mso-bidi-font-size: 10.5pt" lang=EN-US><o:p></o:p></SPAN></FONT></P>
<P style="TEXT-ALIGN: left; TEXT-INDENT: 21pt; MARGIN: 0cm 0cm 0pt" class=MsoNormal align=left><SPAN style="mso-bidi-font-size: 10.5pt" lang=EN-US><o:p><FONT size=3 face="Times New Roman"> </FONT></o:p></SPAN></P>
<P style="TEXT-ALIGN: left; TEXT-INDENT: 21pt; MARGIN: 0cm 0cm 0pt" class=MsoNormal align=left><FONT size=3><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">当你毕业后刚进一家公司时,如果主管没有把你安排到项目组工作,那真的很杯具,因为他认为你还不能胜任工作或者你的加入会让项目组更糟。</SPAN><SPAN style="mso-bidi-font-size: 10.5pt" lang=EN-US><o:p></o:p></SPAN></FONT></P>
<P style="TEXT-ALIGN: left; TEXT-INDENT: 21pt; MARGIN: 0cm 0cm 0pt" class=MsoNormal align=left><SPAN style="mso-bidi-font-size: 10.5pt" lang=EN-US><o:p><FONT size=3 face="Times New Roman"> </FONT></o:p></SPAN></P>
<P style="TEXT-ALIGN: left; TEXT-INDENT: 21pt; MARGIN: 0cm 0cm 0pt" class=MsoNormal align=left><FONT size=3><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">还有人说,我刚进公司,公司就把我当成了苦工,工资又低,项目组加入好几个,也做了很多事情,每天都要加班。我估计有很多人感觉是这种状态,为什么会是这样,因为全国人民(不只是程序员)里有</SPAN><SPAN style="mso-bidi-font-size: 10.5pt" lang=EN-US><FONT face="Times New Roman">90%</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">可能都和你一样的感觉,这说明你现在状况是很普遍的,也说明你现在的能力并没有很多出众的地方。也许是逆境才能让人成长,如果有一天你让你的团队从这些苦力工作中解脱出来或者能给你的团队前进的动力,那你就升华了,你就比他们出众。你没有能力去改变现状,所以只能接受,而不要认为是自己生不逢时,或者说公司环境太差。创业也一样,不要认为公司没发展的主要原因是环境太差,那你不要去当老板算了,投资环境都非常好还能轮到你吗。</SPAN><SPAN style="mso-bidi-font-size: 10.5pt" lang=EN-US><o:p></o:p></SPAN></FONT></P>
<P style="TEXT-ALIGN: left; TEXT-INDENT: 21pt; MARGIN: 0cm 0cm 0pt" class=MsoNormal align=left><SPAN style="mso-bidi-font-size: 10.5pt" lang=EN-US><o:p><FONT size=3 face="Times New Roman"> </FONT></o:p></SPAN></P>
<P style="TEXT-ALIGN: left; TEXT-INDENT: 21pt; MARGIN: 0cm 0cm 0pt" class=MsoNormal align=left><FONT size=3><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">还有很多同学感觉自己付出了很多,回报太少,这个问题很难平衡,首先一点,公司在聘你进来后不会因为你没有成绩就先给你回报,公司也不可能会在你有了成绩后就立即给你回报,但是长时间付出没有回报,那这个公司就不值得你付出。我不赞成频繁换公司,这么做至少可以说明你是一个只求回报不求付出的人。</SPAN><SPAN style="mso-bidi-font-size: 10.5pt" lang=EN-US><o:p></o:p></SPAN></FONT></P>
⑤ 如何理解Linus Torvalds的“什么才是优秀程序员”的话
Linux的创始人Torvalds在一次演讲中有一段涉及“什么才是优秀程序员”的话:
“烂程序员关心的是代码。好程序员关心的是数据结构和它们之间的关系。”
这句话听起来很直白,但未必所有人都能理解其内在的涵义。在国外知名的问答网站stackexchange上有人对这句话提出了自己的困惑:
■ 对这句话应该如何理解?
■ 如何学习和应用其中的道理?
能问出这样的问题需要勇气,提问的人自己也自嘲的说:我不理解这句话也许不是一个好的征兆。但同一句经典言论,100个阅读会得到100种不同的领悟,正像stackexchange网站上各式各样不同的回答一样。下面我们来看看最被认可的一种理解吧。
如果看一下Torvalds在此句话之前说的话,可能会对我们理解它有帮助:
git的设计其实非常的简单,它的数据结构很稳定,并且有丰富的文档描述。事实上,我非常的赞同应该围绕我们的数据结构来设计代码,而不是依据其它的,我认为这也是git之所以成功的原因之一[...]依我的观点,好程序员和烂程序员之间的差别就在于他们认为是代码更重要还是数据结构更重要。
他说的意思是,好的数据结构设计能使代码更容易设计和维护,而再好的代码也不能弥补糟糕的数据结构带来的危害。
如果你不理解他举的git的例子,我再解释一下,很多的版本控制软件都会有规律的修改它们的数据格式来支持增加的新特征。当你升级软件来获得新功能时,你通常需要一些工具来转换到相应的数据库格式。
举个例子,当分布式版本控制系统刚刚开始流行时,很多人不知道,为什么相对那些集中式的版本控制软件,分布式模式下的代码合并会如此的干净整洁。答案无它,分布式的数据结构更适合这样的任务。我相信集中式的合并算法也在快速的改进,但它需要很长的时间才能赶上,因为老的数据结构限制了他们使用的某些算法,而新的数据结构破坏了很多现有的代码。
相比较而言,git里的新特征在不断涌现,但它底层的数据结构几乎没有什么变化。先考虑数据结构,你的代码会自然的整洁起来。
⑥ 20、老婆给当程序员的老公打电话:“下班顺路买一斤包子带回来,如果看到卖西瓜的,买一个。”当晚,程序
意思就是做程序员的人,思路类似于计算机而不是正常人的平常思维.
下班后,老公按照老婆的吩咐照做,顺序是这样的:
下班后,脑子里先加载一个买包子的业务需求.于是脑子里有了这么一个概念/变量 = 包子.
然后看到了卖西瓜的,在程序员的脑子里,思路就是类似如下的伪代码:
如果(看见卖西瓜的) {
买一个.
}
//问题就出在这里.已经看到卖西瓜的了,就要执行这里的内容.但是买一个,买一个什么呢?老婆没有明确声明这里的"一个"后面是什么.那么就默认调用已有的内容(也就是上面的包子)
//于是就买了"一个"包子/
所以要是男朋友是程序员,笑话里的老婆有两种方法来避免上面的问题:
要么,在"顺路买一斤包子带回来"这句话之后,明确告诉老公,买包子的事情已经到此告一段落.后面的事情和买包子无关.
要么,在"买一个"之后明确指出是买一个"西瓜"而不是包子.
⑦ 程序员最不愿意听到哪些话
10句话立马激怒程序猿:
第十名:“加油!我先下班了啦~”
作为一个需求方,我提醒你不该说这样的话……
第九名:“你造嘛,我新电脑的内存有1TB!”
内存和硬盘有啥区别,你造吗?
第八名:“能帮我黑XXX的QQ吗?”
不能!不能!不能!
第七名:“尽快做完,好伐?”
用邮件发这句话杀伤力更大……
第六名:“你先大概弄一个,让我参考看看。”
请问,什!么!叫!大!概?!
第五名:“帮我加10个功能先,明天就要,拜托!”
拜托,我又不是变魔术的!
第四名:“太好了,你还没回家,帮我个忙,很快的!”
和第一句连在一起说,你会死得很快~
第三名:“为什么今天网速这么慢?”
怪我咯?
第二名:“这个应该很简单的吧?”
我不想给你解释,解释了你也不懂,心累。
第一名:“这里改一下就好了啊!”
YOUCANYOUUP!
⑧ 码农的表白情话
马龙的表白的情况非常的简单 而且通过这些东西我们可以有效的说出更多的人的理由
⑨ 老婆给当程序员的老公打电话:“下班顺路买一斤包子带回来,如果看到卖西瓜的,买一个。” 当晚,程序员老
他老公以为,看到卖西瓜的,就买一个包子,没看到就买一斤包子……希望对楼主有所帮助