我喜欢玩游戏,想做游戏程序员,广州优视电子有限公司怎么样?

其他计算机知识(41)
这篇访谈源自2006年,最先发布在波兰程序员 Jaroslaw “sztywny” Rzeszótko (AKA “Stiff”) 的博客上。但是这篇博文现在找不到了。非常感谢他能授权我重新发布这个博文。
在一个炎热无聊的下午,我突发奇想。我想通过电子邮件的方式对那些我非常感兴趣和非常敬重的程序员问10个问题。准备这10个问题我只花了5分钟,这些都是我个人想问他们的问题,所以,我基本上没想太多要问他们什么。最后两个问题和编程没有什么关系,我就是想问题这些人的一些兴趣爱好。另外,不是每一个人都想回答我的,这是我第一次做“访谈”,所以,我犯了一些错误,一些问题没有得到回答。不管怎么样,我得到了很多很有意思的内容,所以,这对我绝对是一次很有意义的经历。
并不是每一个人都回了我的邮件,也并不是每一个人都同意回答我的这些问题,也许在我发布这篇文章后我会得到那些回答,但是我已经迫不及待想把这些东西发布了,所以,我可能会更新这篇文章(更新:日,我收到了Bjarne Stroustrup的回信)
–&Jaroslaw
Q 1: 你是怎么学编程的?是从学校里学的吗?或者你没有上过学:) ?
Steve Yegge
在我17岁的时候,我在HP的计算器中用他们的RPN 栈语言自学编程的。在这之前,我尝试过学习编程一两次,但都没有学成。HP 28c 和 48g 的科学计算器是一个很牛的东西,而且还有不错的文档。我搞了一本3D图形的书,并很费力地把其中的Pascal语言转成RPN栈语言,并用48g写了一个3D的线框图渲染图。运行的还不错,在我买了PC和Turbo Pascal之后,我开始认真地学习编程。在我进入大学计算机科学专业之前,我已经是一个不错的程序员了。
我在华盛顿大学拿到了计算机科学学位,这绝对是有价值的,所以,我建议所有的程序员都应该得到计算机科学专业的学位。
Linus Torvalds
我没有在学校里学过编程,我在主要是读我自己想读的书,或是就直接去编程 (一开始在&&学编程,&然后是&上编程)。
当然,我觉得上大学非常有用。我没有去一个工科大学,我上了赫尔辛基大学,这是一个比较偏理论的大学,所以,那里的教育并没有那么多的编程的东西(编程只是很少一部分),这里大多数的课程都倾向于教一些基础概念的东西,如:复杂性分析。看上去很无聊,甚至有点浪费时间,但是我还是觉得这些课有用,我对大多数课都还比较enjoy。所以,我觉得我可能在这些方面是一个比较好的程序员。
David Heinemeier Hansson
我学编程是从用HTML做我的第一个网页开始的。那时,我想当我的网页能动态地显示一些内容,所以,我选择了ASP和PHP。在做完这个网页后,我知道了怎么去编程,于是我开始我的计算机科学和商业管理学位的学习。
Peter Norvig
我是从高中和大学课程中学编程的,但是我还是觉得我自己学得更多。
Dave Thomas
我是在高中学编程的。我完全地迷住了,我对编程爱得无法自拔,然后,我开始挑选那些提供软件开发课程的大学。最终,我去了伦敦大学的帝国学院。第二年我就开始学习软件开发的课程了,那绝对是非凡的,学生和教员在一起工作把教材做得更好,每一个人都可以从中学到很多。这些课程给了我难以置信和非常雄厚的软件开发背景。我在那里读到了博士,最后去创业了。
关于“我是怎么学编程的”这个问题,我的回答是“我现在还在学编程”。我认为好的程序员一生都在学编程。这并不是去学一门语言或是一个代码库,好的程序员会对他们的编程技艺一年又一年地精益求精。
Guido Van Rossum
我去的那个大学有一个大型主机和很多不同的计算机课程。这对我很重要。
James Gosling
起初,我是自学的。在我去上大学之前,我就找到了一份程序员的工作。但是我很高兴我去了大学,在那里有很多乐趣,最终我学到了博士。
Bjarne Stroustrup
我先上的是Aarhus大学, 然后是 剑桥大学(Cambridge),这两个大学教了我很多很有用的东西,这些东西为了以后的工作打下了基础。另外,我对编程和钱的关系学得非常好——知道了真实世界的问题,正确性,维护性,准时交付,等等,这些比教育可能更重要。
我本来想去做一个数学老师的。但是,那个学数学的大学要我去学几个计算机的课。
Q 2: 你们觉得对程序员最重要的事是什么?
Steve Yegge
沟通能力(写和说)。除非你可以让你的想法更有效率地传递出去,否则你不可能做得比编程更多的事。程序员应该疯狂地阅读,锻炼写作能力,参加一些写作培训课程,甚至锻炼在公开场合演讲的能力。
Linus Torvalds
It’s a thing I call “taste”. 有一件事,我把它叫做“品味”。
我倾向于不从熟练程度来评判那些和我工作过的人。这些人能非常艰苦地写出很多代码,但是我想从他们对别人的代码的反应做出评判,这样我们就可以明白他们自己写的代码怎么样,知道他们使用的方法怎么样。他们对别人的评判还告诉我,他们是不是有好的“品味”。是这样的,如果一个人没有“好的品味”,那么他一般不会很好的评判他人的代码,他自己写的代码通常也不会很好。
哦,这并不只是唯一的事。还有一件事,尤其在开源项目里,那是他是否有能力能和别人进行简单的沟通,告诉别人他要干什么,怎么干。这个能力可以告诉别人为什么你干的事是非常重要的,并不是所有的人都有这个能力。
也就是说,有一些人可以写出很不错的代码,但他们并不一定能解释这些代码,他们也并不一定有好的品味,但是代码可以运行得不错。有时,你需要另一个人(有那种不错的品味的人)把他的代码转成更好的形式。也就是说,任何一个程序员都需要那种可以用清晰的代码来解决复杂问题的基础能力。
David Heinemeier Hansson
很强的对有价值的事的感觉。你可以问问自己这个问题你有没有这种能力:我现在做的这个事值不值得做?很多程序员浪费了如大海一样的时间去做一些无意义的事。
Peter Norvig
我不觉得只有一个,如果要我说一个的话,我说是“专注”。
Dave Thomas
Guido Van Rossum
你的问题很难回答啊:-) 我猜,如果程序员会在早晨煎个鸡蛋做早餐,那真是无价的能力。
James Gosling
自我激发。你需要全身心地投入到你要做的事中。
Bjarne Stroustrup
把事想清楚的能力:程序必需要能清楚地理解问题并能清楚地表述解决方案。
能为自己的直觉提供证据的能力。
Q 3: 你是否认为数学和/或物理是一种很重要的编程技能?为什么?
Steve Yegge
数学有很多的分支和程序员相关,他们是“离散数学”和“具体数学”。这些分支包括的学科有,概率论,组合数学,图论,归纳证明,和其它有用的东西。我会鼓励所有的程序员都去学习离散数学,无论能学多少,因为这总比什么都不懂强。
对于传统的数学,我也不经常用,但是我需要的时候这些数学知识会很管用。例如,在我之前的工作中我就用到了微积分。我需要估计每个小时中某服务的高峰时间的流量负载,所以,他的负载是跟着太阳走的就像一个正弦曲线一样。最简单的方式就是把每个小时的负载曲线给整合起来。如果我不知道微积分,我就不知道怎么更为准确地估计。
当年我在开发我的Wyvern游戏的时候,我的平面几何的知识对我非常有帮助。而且经常使用代数和线性代数的知识。但我很少在工作中使用三角学或微分方程,微积分同样也很少。
我想说,简单的数学基础让我的技能比一般程序员好过5%到10%。如果我了解更多的数学,我确信我会比今天做得更好,所以,我每周都会花几个小时学习数学。
我喜欢物理,我还在学习物理,我会花我一生去理解量子力学。但是我个却没有发现物理对我的程序员工作有多有用。当然,如果我从事一些和物理相关的工作,可能会有用,例如:3D游戏编程,或是某种物理特性仿真。
Linus Torvalds
我个人认为有很强的数学背景是一件好事。但我不确信物理是不是这样的,但是我深信懂数学的人会让你成为一个更好的程序员。这些智力模型都是相通的。
David Heinemeier Hansson
根本没用。至少对业务编程和Web应用来说没用。但是数学可能对一个人的写作有很重要的帮助。
Peter Norvig
是的。很多相法都是从数学来的:归纳,递归,逻辑,等等。
Dave Thomas
也许吧。但老实说,我没见到过懂这些学科和好的程序员有很大的相关性。
然而,我见过有音乐背景和好的编程技能有很强的相关性。我不知道这为什么,但是我怀疑大脑中的某个区域可以让人即可以写出好的音乐,也可以写出好的代码。(陈皓注:&貌似就是这个例子)
Guido Van Rossum
数学,当然(对于一些学科是很重要的,我不关心微分方程,但是代数和逻辑学是很重要的),物理,我不觉得对编程技能有关,当然物理在其它很多地方很有意思。
James Gosling
当然!数学教会了我逻辑和推导……让我有了一双懂分析的眼睛。当我们分析算法的时候,数学是无法被取代的。
Bjarne Stroustrup
这要看程序员自己和项目性质了。以前的数学很有用,物理一般,但是学好物理是是学习应用数学最好的一条路。
对我来说,在我的编程生涯中我从来都没有用过大学里教的数学。
Q 4: 关于编程,你们认为接下来的大事是什么?X-Oriented编程,Y语言,量子电脑 ?
Steve Yegge
我认为Web编程会逐渐变成最最重要的客户端编程。而对于原来传统的客端端编程都会被废弃,如: GTK, Java Swing/SWT, Qt, 当然,所有的和平台有关的东西,例如 Cocoa 和 Win32/MFC/等。
当然,这不会一晚上就发生了。这会在第一个十年内缓慢地发生,而在第二个十年内,Web Apps最终会胜利。工具,语言,协议,和浏览器技术都会进步得非常快,并会完全超出你今天能干的事。每一年都会向前进一步,而从今天开始,我会最终决定把我所有的应用开发全部切换到基于浏览器的应用。(陈皓注:我也是这么认为的,参看《》)
微软和苹果最终不愿意这个事发生,所以,触发这个事的第一步会是一个开源的浏览器(如:Firefox)开始到了支配市场的地位,然后会出现某种Firefox的杀手级应用(这种杀手级应用可能会像iTunes一样,所有的人都会用它,只需要下载Firefox)
Linus Torvalds
我并不认为我们会看到一个“大的跳跃”。我们只会看到很多的工作帮助我们把那些沉闷辛苦的工作变得更简单——会有一个更高级别的语言,也许把简单的数据库集成到语言中来会是其中最主要一个。
例如,我个人相信“Visual Basic”在编程方面比“面向对象”做得更多。当然,人们都在取笑VB是一个很烂的编程语言,并且人们在谈论OO语言都十多年了。但我还觉得不是这样的,Visual Basic 不是一个好的语言,但是我觉得VB那简单的数据库接口比OO更重要。
所以,我认为会语言有很多的改进,并且,硬件的改进会让编程更容易,但我并不期望会有巨大的生产力或是革命性的改进。
至少,你不会开始搞真正的AI的东西,我也不认为真的AI会变成某种你不需要编程的东西。
David Heinemeier Hansson
我从不试图预测未来。我也不相信命运一说。最好预测未来的方式就是去实现未来。
Peter Norvig
大规模的分布式处理
Dave Thomas
下一个最牛的事会被再下一个最牛的事所掩盖,然后再被再再下一个所掩盖,再再再下一个所掩盖……。这是一件没完没了的事,所以,我并不会试图去找最牛的事,因为这会让人们忘了那些最真实的问题:把基本的东西做对。我们要让用户更满意,专注于交付有价值的东西,自豪于我们做的事。一个程序员可以使用很多工具把这些事做得更好,而不是去追逐时尚和流行。
Guido Van Rossum
对不起,我没有那么多水晶球。我CGI被发明了5年后预测过它 :-)
James Gosling
有两个事是我现在最关心的,那就是要对付并行和复杂。
Bjarne Stroustrup
我不知道,我也不愿猜。
Q 5: 如果你有3个月学一个相对较新的技术,你会学什么?
Steve Yegge
我的确有3个月的业余时间,我准备学一下 Dojo () 和高级 AJAX 及 DHTML。我会通过开发一个相当牛的Web应用来学习他们。Dojo 真的酷,并且我确信它会越来越好。
Linus Torvalds
嗯,我真的很爱做 FPGA(可编程芯片),但我部是太忙了而不是坐来来开始学习。我喜爱和硬件打交道:很明显这个原因是因为我最终在做操作系统,因为操作系统(除了编译器)基本上都是在和硬件打交道,但我没有真正地自己去设计和做一个硬件。
David Heinemeier Hansson
Mac 的 Cocoa 编程
Peter Norvig
我想把 Javascript 学得更好,然也当然也想学 flash.
Dave Thomas
如果“新”是对于我来说,那么我会去学钢琴课。
如果“新”是说技术,我猜 我会选择学习某种和为残疾人服务的有关的技术。
Guido Van Rossum
单板滑雪。
James Gosling
搞点有乐趣的东西,我会学习最新的3D渲染技术。我可能会写一个光子映射渲染器。
Bjarne Stroustrup
3个月只有很少的东西你可以学,我觉得你只能参加某个成熟领域的培训。
安全,加密,数字签名,身份标识,等等。对我来说,从没学过这些东西对我来说是个很大的问题。
Q 6: 你们觉得如何让一些程序员可能有超过其它程序员10倍或100倍的生产力?
Steve Yegge
我想你应该考虑一下为什么不是让所有的程序员都一样牛。托马斯爱迪生有一句关于天才的名言也许会给你一些启示。
Linus Torvalds
我真的不知道,我想,一些人之所以更牛是因为他们可以专注于那些重要的事,而更多的只不过是在应付。那些我所知道的真的很牛的程序员从很年轻的时候就在做事了。
David Heinemeier Hansson
把难题变简单的能力。
Peter Norvig
把整体问题一次性放入大脑的能力。
Dave Thomas
他们关心他们做的事。
Guido Van Rossum
大脑结构基因不同。
James Gosling
他们知道他们要做什么,他们不并不急于仓促行事。他们有他们要做的事的整个蓝图。
Bjarne Stroustrup
首先,缺少足够的职业培训,或基础不够。其次,这些人要即聪明(那种可以把事情想清楚,直达核心的能力),又有经验,并有使用工具的知识。编程需要把理论和实践结合起来 – 并不是使用没有实际业务的知识。
令人惊讶的思维改变。
Q 7: 什么工具是你的最爱(操作系统,编程/脚本语言,文本编辑器,版本管理,shell,数据库,或其它没它你活不了的工具),为什么不是别的?
Steve Yegge
操作系统: Unix! 我用Linux,cygwin,和 darwin。你无法打败那些高效的工具。每一个程序员都应该学习使用/bin和/usr/bin下的所有命令。
脚本语言:Ruby。我几乎对所有的重要的脚本语言都很熟悉: Perl, Python, Tcl, Lua, Awk, Bash, 和一些我忘了的。但是我太懒了,而Ruby是目前所有脚本语言中最简单的,它应该是天堂制造的。
编程语言:没有一个我喜欢的,我觉得所有的编程语言都很扯。我倾向于Java,因为它很强,可跨平台,有多不错的工具和类库。但是Java未来会进化或是灭亡,Java还没有好到可以永远保持其领先地位。
文本编辑器:Emacs,因为这是迄今最好的编辑器。
版本管理:SVN,Perforce更好一些,但是也很贵。
Shell脚本: Bash, 因为我太懒了去学一个更好的。
数据库: 当然是MySQL,没有之一。
其它:我发现GIMP是无价的,但也是令人恼炎火的。我用这个东西好几年了,但什么也没干,但是我没它活不了。很讽刺吧。Firefox 越来越是我最重要的工具。如果让我去用IE和Safari,我会有严重的窒息感。
注:所有的这些工具 (Unix, Emacs, Firefox, GIMP, MySQL, Bash, SVN, Perforce) 都有一个共同点:他们是可扩展的。例如:他们都有可编程的API。伟大的程序员知道怎么编写他们的工具,而不只是去使用。
Linus Torvalds
实际上,我最终也没有用过几个工具,而我却花了一些时间让这些工具为我工作。最大的事是我自己写了个操作系统,我也自己写了个版本管理系统(git),我用的文本编辑器是 micro-emacs – 最终我也定制和扩展了它。
除了上面三个,其它的东西,我深度关心我的邮件阅读软件,我使用“pine”,并不是因为它是史上最好的邮件阅读软件,因为我习惯了,用它我会有最低限度的大惊小怪。
David Heinemeier Hansson
OS X, TextMate, Ruby, Subversion, MySQL. 这些组合让我很快乐。我希望那些有好的品味的专注于重要的事的工具。
Peter Norvig
我不喜欢那三大操作系统 – Windows, Mac, Linux。我喜欢 Python 和 Lisp. Emacs.
Dave Thomas
在使用Linux10年后我转到Mac平台有两年多了。Mac并不见得有多好,但是它不需要很牛的技术,也不需要经常维护,这让我可以让我更专心得使用它。
我并不是一个单一工具的信仰者,我喜欢换来换去的,这样可以让我有更多的经历。现在,我使用 OSX, Emacs, TextMate, Rails, Ruby, SVN, CVS, Rake, make, xsltproc, TeX, MySQL, Postgres, 还有一堆高效的小工具。没人知道我明年会用什么。
Guido Van Rossum
Unix/Linux, Python, vi+emacs, Firefox.
James Gosling
这些天,我在用 NetBeans. 用它可以干我想干的所有的事,清洁,简单和高效。这是最好的我永远要生活在其中的环境了。
Bjarne Stroustrup
Unix, sam (一个非常简单的文本编辑器), 当然,一个好的C++编译器。
我喜欢 Unix-like 的操作系统,像 Python 和 Ruby 的动态语言,像Java的静态语言(具体说来是Java API) Emacs, 还有, bash, whatever, NetBeans.
Q 8: 你最喜欢的编程书是什么?
Steve Yegge
大哥,这个问题太难了。也许是”G?del, Escher, Bach: an Eternal Golden Braid” (作者Hofstadter)?虽然这不是严格意义上的编程的书,如果你要明确意义上的编程书,那么可能是 SICP (mitpress.mit.edu).
Linus Torvalds
嗨。这两天我在读一些小说,或是非计算机读物(老的但是有用的 “The Selfish Gene” 作者 Richard Dawkins)。
如果要问我编程的书,我脑子里只出现了唯 一一本真正的经典的编程的书 Kernighan & Ritchie 的 “The C Programming Language”,因为这本书太牛了,可读性强并且很短。考虚虑一下你想学到这世上一门最重要编程语言,并且它很要很薄,而且还有可读性,这真是一个奇迹。
也就是说,其它我很喜欢的书并不是编程的,而是关于计算机结构和硬件的。那显然是 Patterson & Hennessy 的计算机结构的书,但是我个人也许更喜欢 Crawford & Gelsinger 的 “Programming the 80386?,这是我在开始写Linux时用的书。
相似的原因,我还喜欢 Andrew Tanenbaum 的 “Operating Systems: Design and Implementation”.
David Heinemeier Hansson
我喜欢 Extreme Programming Explained 其摒弃了一般的编程实践,我还喜欢 Patterns of Enterprise Application Architecture 其出众地说明了抽象和具现的平衡。
Peter Norvig
Structure and Interpretation of Computer Programs
Dave Thomas
这关系到你所谓的“最喜欢”,也许我最喜欢的是IBM的 “IBM/360 Principles of Operation.”
Guido Van Rossum
Neil Stephenson的 Quicksilver.
James Gosling
Programming Pearls 作者Jon Bentley.
Bjarne Stroustrup
Bentley的 Programming Pearls
Q 9: 你最喜欢的和编程无关的一本书是什么?
Steve Yegge
只能是一本吗?这不可能。有太多太多我喜欢的书了。
我这个月读过最喜欢的书是 “Stardust” (Neil Gaiman) 和 “The Mind’s I” (Hofstadter/Dennet).
我最喜欢的作者是 Kurt Vonnegut, Jr. 和 Jack Vance.
Linus Torvalds
我在前面说过 Dawkins的&Selfish Gene。在小说方面,有很多很多我enjoy的,但是几乎没有我特别喜欢的一本。我一般不会重读一本书,我的选择总是会变。我可能更喜欢科幻小说,如:”Stranger in a Strange Land” 作者 Heinlein,这是我青少年时期最喜欢的书,但现在并不是我喜欢的了。
David Heinemeier Hansson
1984, George Orwell.
Guido Van Rossum
Neil Stephenson 的 Quicksilver.
James Gosling
Guns, Germs & Steel 作者 Jared Diamond
Bjarne Stroustrup
我没有固定喜欢的书。目前是 O’Brian 的 Aubrey/Maturin 系列。
One Day in the Life of Ivan Denisovich
Q 10: 你最喜欢的乐队/演奏家/作曲家?
Steve Yegge
喜欢的风格:古典音乐,动漫原声音乐,电脑游戏音乐
喜欢的作曲家:Rachmaninoff, Chopin, Bach
喜欢的演奏者:David Russell (古典吉它), Sviatoslav Richter&(钢琴)
喜欢的动漫音乐: Last Exile, Haibane Renmei
Linus Torvalds
实际上我并不太喜欢音乐,但是当我听音乐的时候,我一般听经典摇滚乐,如: Pink Floyd ,Beatles ,Queen 和 The Who 乐队。
David Heinemeier Hansson
我喜欢很多风格。 Beth Orton, Aimee Mann, Jewel, Lauryn Hill. Actually, 所有的这些都可以归到 Girls with G).
Guido Van Rossum
Philip Glass.
James Gosling
我喜欢听民歌: Christine Lavin, Woody Guthrie, Pete Seeger…
Bjarne Stroustrup
乐队: The Dixie Chicks. 作曲家: Beethoven.
看我的博客吧。
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
我之所以发现这篇文章,是因为我读到了 Jeff Atwood 的这篇名为 “” 的文章,这篇文章指向了 “” 这篇文章,但是链接已坏了,然后,我搜了一下也没有搜到这篇文章。然后我去了 archive.org 搜了一下,并找到了这篇由 Jaroslaw Rzeszótko 写的博客。
因为这篇博文现在找不到了,所以,我想我应该重新把它贴出来,这样其它人可以读一下这篇有意思的文章。所以,我向原作者取得了授权,再次感谢 Jaroslaw!
(全文完)
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:614672次
积分:7495
积分:7495
排名:第1900名
原创:148篇
转载:295篇
评论:49条
(1)(1)(4)(1)(2)(8)(13)(5)(11)(20)(12)(17)(60)(29)(63)(18)(43)(89)(37)(10)资深软件开发人员分享的一些关于专业化编程的经验和教训,这些经验教训都是经过多年历练总结得出的。如果你刚进入专业的软件开发世界,那么得益于在计算机科学和编程方面的教育和/或培训,你已经具备了一定的知识。但是真正的开发业务工作又和在学校编程不同,这是你不可能从大学课程或编码学校中学会的东西。为了了解新手程序员需要知道哪些内容,我咨询了一些经验丰富的编码老将,这些“老”将全部有着至少十年(有的甚至是几十年)作为专业软件工程师的工作经验。我的问题是,如果他们现在回过头去,哪些技能和知识是他们第一次以写代码为生的时候就希望能够掌握的。无论你是一个刚毕业刚开始自己第一份开发工作的大学生,还是年长的转业到编程领域的工作者,欢迎阅读这7条专为新手程序员总结的建议。1了解底层系统软件开发的一个重要组成部分是,了解编程语言。但是,正如有些人建议的那样,开发人员还需要了解堆栈下面是怎么回事。“很多语言抽象化了系统层正在发生的事情,这种抽象是很有用的因为它让开发人员在大多数时间里变得更高效。”Pete Bul,Acquia公司的一位支持工程师说。“但是,当你碰到一个障碍,一个特别坚实的bug,需要更深层次地了解内部究竟发生了什么的时候,那么了解底层系统就是一个很有用的技能,可以让你调试进程,查看系统调用,并且真正意义上看到代码片段与系统的其余部分的交互,”他在邮件中这样写道。无独有偶,Robert Douglass,Customer Satisfaction with Platform.sh的副总裁告诉我,“当我刚开始编程的时候,对于计算机我有很多不明白的地方。文件系统,网络连接以及内存机制就是三个明显的例子。不了解这些,意味着我可能会不知道一些我想要呈现的编程结构的目标。2知道命令行工具作为一个开发人员,你必然需要将大量的时间花在IDE或代码编辑器上。但是,知道命令行这个工具有助于你更便捷地完成工作。“有时候,你可能会处在一种需要紧急完成任务但工具却非常有限的情境中。”一位已有20年工作经验,并希望能够匿名的资深程序员告诉我, “知道shell就要像呼吸一样自然。掌握类似于find、comm、diff、vi/vim、sed、awk等工具。知道如何用命令行来查找文件等等,都可以在你写脚本的时候为你减负。”Bull,是一位先用微软工具,然后逐渐转移到Linux的程序员,对此表示赞同:“了解命令行的来龙去脉以及掌握所有的实用程序真的很重要。这是我经历过的切身体会。”3调试器是我们的好朋友程序员很大一部分时间会涉及追踪bug。Dave Varon,Novartis公司的一位生物信息学开发人员,着重强调了调试器的优点以及它是如何减轻了时间的初始成本。 “一定要掌握如何使用调试器!”他告诉我, “磨刀不误砍柴工,事先不妨花个一两天时间进行配置。如果没有得到预期结果,那就调试:设置断点,逐步调试代码,特别要注意第三方代码。这可以避免很多挫折,也能让你更好地了解那些只能通过阅读别人的代码才能知道的编码知识。”4学习编写测试一些开发人员认为,单元测试,也就是编写测试来验证小单位代码是否在做应该做的事情,是非常关键的。Richard Handloff,Strategic Power Systems的数据库开发人员,就是其中之一。 “我认为我曾给那些想要学习编程的人提的最佳建议就是,要学习编写良好的测试并且学习在进程早期就开始编写测试,”他在回信给我的邮件中这样写道。5积极应对变化和学习新系统大家都知道,现在的技术变化很快。这不仅适用于深受我们喜爱的消费品,对于程序员使用的底层系统、语言和工具同样如此。Adam Wulf, Milestone Made公司的移动开发者和创始人建议,要积极应对变化,并始终保持在技术的前沿。 “现在,我的建议是每隔4年就得计划去学习基本上全新的技术堆栈,”他说, “好的基础知识永远是可用的,但是你每天要用的工具和技术差不多每隔4年就会完全不同。”“项目永远不可能只用一种语言和一种框架,”一位不愿意透露姓名的开发人员说, “你不能吊死在一种技术上,要习惯于从一个项目到另一个项目的转移,一种语言/技术到另一种语言/技术的扩散,”他写道。6良好的合作尽管程序员习惯于戴上耳机独自工作,但你依然要与其他人合作。Ben Miller,Sinclair数码公司的CTO,强调了团队工作对于事业成功的重要性。 “大项目往往意味着大量活动组件的碰撞,需要处理组件如何结合和划分的问题,如果你不小心的话,可能会导致难以预测的工程问题。”他在电子邮件中写道。 “在优化算法之前,和团队一起确保没有问题是交叉的,可以让每个人要解决的问题都变得简单起来。编码是一项团队游戏!“Varon重申了人际交往能力的重要性,他说:“如果你通过再次查阅API和调试,依然不能弄清楚问题的根源,那就应该寻求帮助。哪怕你觉得你写的是杰作,也并不意味着没有废话或者不能更好。要和同事融洽相处。有时候只需要大声地说出这个问题或许就会有灵光一现。“一些匿名人士还分享了类似的想法,比如说成为团队成员。 “提升团队凝聚力,乐于助人,即使是一些琐碎的工作,”他说。但是,在这种情况下,他警告说,“一定要有一个度,不要捡了芝麻丢了西瓜,忘记了自己的本职工作。”7不要害怕失业Miller有一个特别有趣的忠告。 “跳槽就是晋升,”他告诉我。 “寻找解决问题最简单的方法,可以让你的代码弹性化和免于维护,这样你的上司就会交给你更多的事情。他们甚至会要求你将你的做法教授给别人,“他解释说。 “总而言之,一味地担心失业可能会阻碍职业生涯的前进。”译文链接:/article/7-things-new-programmer-know.html英文原文:7 things every new programmer should know翻译作者:码农网 – 小峰达内科技诚意推荐达内科技(danei_peixun) 
 文章为作者独立观点,不代表微头条立场
的最新文章
看着那些IT行业月入几万的工程师,你是否也蠢蠢欲动?然而你和他们的差距在于,努力和方向!他们除了埋头苦学精通0基础小白通过4个月的学习想要成为优秀的前端web前端开发,必备四大技能:1、基本知识的掌握2、常用工具的掌进入21世纪以来,随着市场经济一体化进程的加快,更加先进的科学技术,越发激烈的国际竞争以及变化莫测的市场,对“诚信”是达内人做人的准则。8月26日,达内教育集团创始人、总裁韩少云先生受邀参加中央电视台华人频道《诚信中要学习PHP的童鞋们,是不是都已经了解过你们即将学习的PHP到底是个什么东西呢?它有什么样的能力呢?那接下来你是否正在准备寻找一份 PHP 开发的工作,并且也在寻找一些关于 PHP 的面试题及答案?本文为大家分享了一如何成为一个高效的工作者?如何高效的完成自己的工作?额……如果你肯花点时间看看这篇文章,我相信你会很明白该如你是否正在准备寻找一份 PHP 开发的工作,并且也在寻找一些关于 PHP 的面试题及答案?本文为大家分享了一成长的确会有快慢之分,但无运气可言,人生最坏的结果,也不过是大器晚成。文 | 老丑01如果人可以按照走运和不很多达内学员(应届生)制作简历的时候都有些迷茫,因为他们不知道什么样的简历才是HR想看的简历,什么样的简历才很多学员在咨询课程的时候,看到UID这么高大上的词汇,都会问这个课程是什么?我没有基础可以学习么?学完之后能你想成为一名Web前端开发人员,但现在你面前有这样一个问题,那就是你不知道如何入行?过渡到一个新的领域从来就一分钟的自我介绍,就像商品广告,在短短六十秒内,针对“客户”的需要,将自己最美好的一面,毫无保留地表现出来,学习前端我们都知道要学HTML、CSS、JS这些基本的知识, 学习的内容基本差不多,但是学习的成果却千差万别Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持达内双选会马上就要开始啦~达妹为您收集一些面试中经常会遇到的经典面试题以及自己面试过程中无法解决的问题,通过今天是8月11日,2016年已然过半,达妹就2016年上半年的就业市场进行了调查。此份就业形势研究报告是根据2016达内Linux云计算学院一大波就业喜报来袭~作为大三在校生、大四毕业生、刚入职场的新人,找工作时是否遇到以下困扰:1、面试官给薪资都有什么标准?2、怎样高薪就业是我们所有人长久的追求!就业,意味着个人价值的实现!意味着家庭梦想的开启!甚至关系到社会稳定,国家繁每次双选会后,都能收到小伙伴的留言,抱怨自己水平和班内的同学不相上下,甚至更强,工资却没有别人的高。经过达妹近日,达内发布2016财年第二季度财报,总体表现不俗,本季度学员报名人数增加,未来将会继续坚持多元化发展战略(这篇文章,达妹之前推送过,今天重新发布一次,因为能帮助到学员的文章值得一发再发)今年各类企业发布招聘PHP很多人觉得自己很平凡,所学专业发展前景不好,想拿到理想的收入需要奋斗很多年,看着那个目标,觉得离自己很远,就现在找工作越来越难难,而且一年比一年就业压力大,为什么学习web前端却如此火爆呢?本文给小伙伴们详细解答。职高薪就业是所有达内人长久的追求!就业,意味着个人价值的实现!意味着家庭梦想的开启!甚至关系到社会稳定,国家繁达内发布2016财年第二季度财报,总体表现不俗,本季度学员报名人数增加,未来将会继续坚持多元化发展战略!详情对于很多不是很专业的人士来说,可能还不知道什么是Linux。Linux简而言之就是一个操作系统,平时大家都有很多小伙伴们,只知道Web前端开发技术是现在IT行业最火爆的技术,学习Web前端课程能拿到高薪,在免费训练营你有没有羡慕嫉妒恨过那些比你牛逼的牛人,那你有没有想过为什么别人会比你牛逼?也许你会说别人有有钱的爹可以拼,首先明确一个问题:面试的本质是什么?很多人在面试之前没有摆正自己的位置,也没有真正看穿面试的本质。导致的结果作为刚接触web前端开发或者已成为前端工程师的你,是否经常碰到以下疑问:1、零基础从哪里开始学web前端?2达妹在网上发现了2016年程序员职业薪酬报告。该报告来自国内某平台内程序员用户的调查问卷。统计发现,前端、后小伙伴们,要抱紧达妹哦,应Linux云计算课程学员的要求,近期达内会推出Linux云计算微信公众号。每天更新你的微信通讯录里,动辄就会有几十、上百,甚至上千的好友数量。但真正和你有往来的屈指可数。所谓“人脉”,并不仅职场如同江湖,江湖有江湖的规矩,如果不懂规矩,就面临被淘汰。下面这些职场主题的电影,教你GET各种职场技能,据不完全统计,中国目前有十万家以上的教育培训企业,但能够发展壮大并在全国拥有一定品牌影响力的大型知名教育企业许多学员,在求职应试过程中表现得特别积极,他们在第一关笔试中都很容易过关。但是在面试过程中,就会被一些问题难来源:达内数字艺术培训编辑:达妹UI设计的概念侧重在“交互”设计。优秀的UI设计界面,不光是各种元素设计技巧美国上市公司 30万大学生的共同选择点击题目下方蓝字关注 达内科技来源:网络编辑:达妹好的学习语言习惯,往往点击「达内科技」可快速关注达妹在此等你呦~~2014年已尘埃落定,720万大学毕业生身在何处,其中100万计出品:编辑:达妹Eclipse快捷键大全Ctrl+1 快速修复(最经典的快捷键,就不用多说了美国上市公司 30万大学生的共同选择点击题目下方蓝字关注 达内科技美国上市公司 30万大学生的共同选择点击题目下方蓝字关注 达内科技美国上市公司 30万大学生的共同选择点击题目下方蓝字关注 达内科技danei_peixun【达内官方账号】 纳斯达克上市公司。致力于Java、C++、PHP、嵌入式、.Net、安卓、IOS、UID、网络营销、软件测试、网络工程等培训。12年培训经验,42000家合作企业,140000名学员 。是中国职业教育的领导品牌。热门文章2.雪茄包装设计最新文章danei_peixun【达内官方账号】 纳斯达克上市公司。致力于Java、C++、PHP、嵌入式、.Net、安卓、IOS、UID、网络营销、软件测试、网络工程等培训。12年培训经验,42000家合作企业,140000名学员 。是中国职业教育的领导品牌。

我要回帖

更多关于 优视达电子 的文章

 

随机推荐