写程序一般是需要比较集中注意力的,否则哪个地方敲错个代码,后期排查错误时也是比较麻烦的。
你这位程序员同事可能是因为其它原因才这样子吧。
作为一个程序员,你发现同事写的代码有Bug,你会告诉他吗?讲真的,这个事情对我来讲,很难,因为我在这个事情上吃过苦头!看待这个问题首先得看对方脾气咋样,如果对方脾气不好,或者很难搞,还是想想其他办法。直接跟他讲可能会遭到对方的白眼!
别看我们程序员一个个傻傻呆呆的,其实自尊心特别强!除非你是他的领导,否则即使你发现了他代码里的Bug,他也不会服你!虽然还是会改,但内心一定在想:“就你能?自己管好你自己就成,看我代码干啥?”
其实我也是这样的心理,好像程序员除非自己愿意,否则都不怎么喜欢别人去研究自己的代码,好像对方故意找自己茬的意思。
但是不管咋样,不管是有意无意,我们既然发现了同事写的代码有问题,就不能坐视不管!
我最近在调一个小伙伴的接口时,因为涉及到数据回滚,所以就想知道他的代码有没有做回滚 *** 作。如果没有,可能我这边数据已经回滚了,他那边没回滚就会导致数据前后不一致。所以我也不是有意要审查他的代码。
然后我就发现他不光没有做回滚 *** 作,也没有做批处理。几个涉及到修改数据的代码就这样一行一行走下来,看着直让人挠后脑勺。
于是我就把这个事情告诉了他,让他要么做事物(如果 *** 作有问题,可以自动回滚),要么做主动回滚。否则我在调他接口时,如果我这边撤销了数据修改,他那边却提交了修改,就会导致数据丢失或前后不一致。
当我告诉他这个情况和解决方案以后,我能很明显地感受到他有点不愉快。但事实摆在眼前,也只能修改。可修改归修改,他还是有点脾气的。于是他写了一个事物,将大部分涉及到增删改的语句全部包在了里面,唯一把一个删日志的语句留在了外面。
我看到这个情况,就委婉地跟他说:“”好像这个删日志的语句也要包在事物里面哦!”
但是他却说,这个无关紧要,他特意放在外面的。
我跟他说,既然这里有数据存在,就不是无关紧要的。不管咋样,也不能无缘无故就把数据给删了。但是他很倔强,执意不改,还说如果我觉得这个数据有用,那就让我自己“顺手”把这里的代码改一下。
此时我能明显地感受到他已经有点烦我了!无奈之下,我把这段代码给移动到了事物里面。
而我为什么说我因为发现同事代码有Bug告诉同事而吃过亏呢?
原因在于我之前待过的一家公司,有一个工作了几年的程序员同事,而我当时是个萌新。因为我专门培训过,所以代码能力还行。可这个同事虽然工作了几年,但写出来的程序代码却Bug一堆,常规测试手段还测不出来。
我是在偶然之间发现他写的一个程序是有Bug,但是又不确定,所以就想看看他代码是咋写的。不看不知道,一看吓一跳,他写的好大一部分代码都有问题!
我当时初生牛犊不怕虎,发现一个跟他说一个,结果最后把他给惹毛了,当场就要跟我动手,说我专门针对他。我哪有针对他的心呀!我当时想的是把这些Bug找出来,让他改掉,否则对公司也不好。
但是他想的估计是被我这个萌新发现了一堆Bug很丢人。我总是针对他的代码找Bug,他就是脾气再好也绷不住啊!
后来我们的部门经理为了不让他难堪,也为了给他个台阶下,找了我写的程序里的一个缺点,猛批了下,然后跟大家说:“我刚才看了看,大家写的代码有好多问题。这样,大家都各自检查一下自己的代码,看看有没有问题,有问题尽快改过来,然后我们统一测试!”
直到现在,我也没学会当发现同事代码有Bug以后,在不让同事产生不愉快的心理的情况下,委婉地告诉同事他代码写的有问题的方法。
学习软件开发如果只是仅仅做一些比较浅显的内容的话不需要很深的数学功底,只要把逻辑思维锻炼好就够了。但是如果真正想要学习一些关于算法方面的内容的话就要比较好的数学功底了,至少需要很强的思维能力。英语的话不用太多,只要能看懂一些基础文章就好了,因为有时候一些C语言的练习题目会用英语写出来,不过也不用太深。数学方面可以多看看离散数学以及图论方面的知识,有时间的话买本关于C或者C++的书看看,这两种语言算是最普及的软件开发语言了。
追问
你说这些我都不明白,你就告诉我数学要好到什么样英语要好到什么样就行了
追答
软件开发中的程序语言,不能单纯地把它归结为是英语。它也是一门独立的语言,只是用英文字母去表示而已。
作为初学者,你所需只是去记住他们而已,并不要求像真正学习英语那样,要求语法、阅读、听力。
当然,英语基础好的话一定会给你的程序员学习帮助不少。英语是学好计算机的一个有利条件,但决不是最关键的。
我们的课程对算术能力没有什么特殊的要求,有高中的数学基础就足够了,只是需要了解一些基本的算法,比如,怎么区别奇数、偶数呀,质数的概念呀。算法是现成的,并不需要设计算法。
所以,高中生所具有的数学、英语水平,足够学好这个专业。
你只要好到一个高中生的水平就够了。
追问
我现在高一不念了学这个能学好吗
追答
不行,必须具备完整的高中数学、英语知识,此外高中也会让人的思维更灵敏活跃【比不上强】。
现在学软件开发,你就得靠自己自学高中内容了。
-------------------------------------
对于程序员, 为什么英语比数学更重要? 如何学习
程序员联盟群里经常有人问:
我数学不好可以学编程吗?
我英语不好可以学编程吗?
今天就来一次性回答这两个问题。
我这些年的体会是:
英语对于编程的助力比数学要大。所以要说优先级的话,首先过了英语这关再说。
当然了,很多人会有不同的意见。我这里只是说说不才的我个人的体会。
欢迎留言指教,也可以丢鸡蛋,不过记得再丢几根韭菜,我可以韭菜炒蛋~
为什么这么说呢?很简单,不少编程都不需要什么数学知识,但是英语却是避无可避。
除非你是用易语言编程(不过说实话,中文真的不适合用来写程序。英语的字母组成和特性决定了编程还真需要用英语),不然离不开英语。
对编程来说,学好英语有以下必要性:
对编程语言里的基本词汇敏感,便于理解意思。很多函数和变量名都是自注释的(也就是说光看名字就知道意思了),例如isFinished()函数,不懂英语的话就不知道是什么意思,如果会英语马上会知道是判断“是否结束”的函数。很多API或源码是没有注释的,因为函数名已经可以达意了,但不会英语你就看不懂。
能够为变量或函数起个好名字。命名可以一大学问,名字起得好,一看便知,就是1中所说的自注释了。如果英语不好。起了个有语法错误的名字,或者胡乱起一个名字,或者起一个拼音读音的名字(比如haoChiMa,简直不能忍),对于阅读你程序的人或者是你日后自己回看自己的程序,简直惨不忍睹。
很多好的教程和书籍是英语的。虽然现在伟大祖国越来越发达,国人编程整体水平越来越高,也著有非常优秀的书籍,写了非常优秀的博客等。但是,老外的思维方式还是跟我们不太一样,看老外的文章往往比同类的中文教程易懂。因为他们思维跳跃,语言幽默、形象,看起来比较轻松愉快。不过,我越来越发现:比如我在搜索Android一个知识点时,Google的英文结果没有满意的答案,在中文的博客里却会找到答案。这说明我国已今非昔比了。
很多好的论坛,网站是英语的。例如最著名的stackoverflow,github,等等。在上面可以用英语提问,回答;参与开源项目,撰写文档,等等。当然了,国内CSDN这样的综合编程社区也是很优秀的,但是一般来说新技术会第一时间用英语在国外网站发出来,例如Android的各种新闻,我们中文版还需要等人翻译,这就滞后了。
很多书籍,有中文翻译版,但是不好理解,因为翻译水平不行。所以要看原版的话只能会英语。
很多软件,没有汉化,只能会英语。
我在之前的文章里提过, 我从2011年编程入门以来, 这5年很努力, 几乎每天都在学习。
当然了, 还是大菜鸟一枚。不过这5年, 可以说学了别人10年的东西。(不光是编程,也学了很多其他技能。)
很重要的一个原因就是我的英语还不错(当然了, 比我好的人多了), 英语好对编程真的帮助极大!
反观数学:只在某些特定领域需要数学比较好。
例如游戏开发,3D游戏需要有坐标系的转换,重力,反d,角度等计算,需要数学知识:嵌入式底层,位移,与、或、非等运算,二进制,十六进制,八进制和十进制的转化和计算,需要数学知识;高科技或研究领域,比如航空信息工程,那数学要求很高。但这些编程领域,还是离不开英语。
一般的编程,你说Web编程吧,如果是前端,一般都不需要什么数学知识吧;做Android应用开发,也不用数学好。
不过,说到底,如果你英语好,数学也好,那对于编程肯定有益。
那么,如何学好英语呢?
首先,兴趣是最好的老师。
如果你不觉得学英语是一件苦差事,反而饶有趣味,那么你的进步会很快。
我就是这样,学习外语对于我来说是很有意思的事。
我敢说自己是程序员里英语很好的,说英语的人里编程很好的。
除了英语还会法语,一些西班牙语,和中文诶(哇,竟然会中文,好腻害...)。
我业余也在给全球下载量很多的App做中英翻译团队志愿者,已经2年多了。
所以你担什么心呢?大可放心来找我。小编久居法国(7年了),每天工作都要接触英语和法语。英语只可能进步,不可能退步~ 有什么学习英语的问题,可以来找我哦。
如果你对英语兴趣不大,那可以用下面的几个方法:
1. 语法是主干
不少人学外语,总觉得应该要学一些常用语,和老外打成一片,口语是很好啊,单词量也有。但是假如知其然,不知其所以然的话,你是走不远的。
学语法,就是“知其所以然”。
要真的学好一门外语,语法太关键了。语法是铜筋铁骨,打扎实了,其他的单词,什么的,慢慢装饰不急。
以前小编的初中课外英语老师就经常强调:英语要打扎实语法。所以小编对语法一直不敢怠慢,后来发现,学其他外语也特别快。只要先从语法入门,其他都水到渠成。
2. 看到背后的益处
也许你会说:“什么?学英语还有什么益处?除了让我不爽之外。”
是的,学英语当然大有益处。学外语,其实是学其背后的文化。一门语言,代表了说这门语言的国家人群的生活习惯,思维方式,文化历史,等等。
如果把学英语想成能够接触英语文化,学习其历史背景,人文艺术,高新科技的大好机会,那你学习就有了新的目标和动力了。
什么?你还是没有动力?你,你,你给我出去~ :P
3. 学腔调
学一门语言,其实很关键的一点是学腔调。什么是学腔调呢?就是模仿,类似“鹦鹉学舌”。
你应该听那些纯正的外语者是怎么发音的,他们说话用的是什么腔调,你就跟着学,模仿就好了。他们怎么待人接物,你也怎么做;他们怎么用这门语言,你也怎么用。
因为语言不是干巴巴的文曲星的发音,每种语言都有其特殊的腔调。这一点,说英国腔英语的人肯定大有体会。
4. 不死背单词
不少朋友学英语,拉起来就猛背单词,个人觉得不是太有效。诚然,单词对于语言来说很关键。假如没有词汇量,你语法再厉害,也是张口的“聋哑”人,不是吗?听也听不懂,说也说不出来。
但是单词怎么才能记得牢,个人觉得用情景记忆法最佳:比如多和老外聊天,他们提到或纠正你的单词,你会一直记得,基本都不会忘了,因为你把这个单词和当时的情景联系在一起了;看文章看电影记单词,也是不错的方法,这样才能活记,也是利用情景记忆法。
5. 勇敢说出来
什么“疯狂英语”等概念其实是有其道理的。中国人一般都讲求低调做人,要谦虚不张扬,隐忍不狂放。
但是很多外国的英语老师都会鼓励我们不要怕丢面子,I 就要大声说出来。毕竟肚子里再有墨水,不说就只能黑在肚子里了。
6. 看电影和唱歌
看电影和学唱英语歌曲是很好提高英语的技巧,但是这个是在掌握好语法的情况下,不然跟不学语法只和老外聊天没什么区别。
看英语电影时,可以用遮挡物遮住字幕部分,看几遍电影,因为看中文字幕你是很难提高的。
学英语歌呢,可以先自己把歌曲用中文翻译出来,搞清楚意思了,再去背。
7. 多看书
不用说了,多看一些好书吧。
加油,让英语成为你编程学习的一大助力吧!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)