① 我是干了八个月的程序员,干了十几年的同事给我说我脑子不灵活,思维严谨,我是不是该转换一下做事思路
既然他这么说,而且他有十多年的工作经验,那肯定只看出了你工作上的一些弊端,那你可以虚心的请教他,你也应该转换一下工作思路,因为程序员这工作比较枯燥,但是也不能太死板。能尽量写短一些的代码就完成工作比绕个大圈写一堆代码完成工作要好得多呀,效率也高。
② 江苏北大青鸟:程序员如何提升算法思维
持续学习,持续开发,是目前主流IT业界程序员的一个生活常规,在现代技术迭代速度非常快的情况下,只有不断保持自我学习和探索才不会与时代脱节。
无论是专业的IT从业者还是IT小白,都需要培养自己的算法思维。
江苏电脑培训http://www.kmbdqn.cn/发现拥有良好算法思维后的直接好处有:更高的面试成功机会,和更快的日常问题处理能力。
何为算法思维,并不是对一些已经设计好的优秀代码的反复背诵和背板,而是自己对于问题的抽象能力的练习,即从抽象问题到实际进行编码或者设计程序解决问题的一个能力,如果单纯对于一些算法进行背诵的话,我们的思维能力不会得到提升,最多就是熟练的码农而已。
所以,当看到别人设计的优秀算法后,我们一定要探寻算法背后那“曲径通幽”的思维之路。
只有经历了思维之路的磨难,才能永远占有一个算法,并有可能举一反三,或者是设计一个巧妙算法。
个人认为,对于提升算法思维的方法,首先我们需要深入思考各种苦恼的问题,例如:假设我喜欢租车出行,那么对于某一个地方的停车点一般在什么时候有车的机率最大?有车的概率是否与天气,温度等因素有关?我希望可以在回家之前通过手机APP让家里的空调提前工作起来,但是我非常Geek,不想使用现成的产品而想自己实现一个,和同学吹牛的时候可以更加脱颖而出?在明确了这些问题以后我们就可以开始思考如何尝试写一个小的程序来帮助自己解决,这个时候如果手头有一个习惯的语言就非常合适了(比如我个人就喜欢Python,有很多库可以使用,而且入门非常容易),如果没有的话,可以去看看各个语言合适的场景,不过对于爬虫、数据分析相关个人认为更加贴合日常生活的项目来看,还是考虑直接从Python3起步比较好,后期如果想用树莓派做点智能家居相关的项目的话Python也是非常合适的。
对于Python的学习,目前有很多非常成熟的课程,可以覆盖各个不同的能力范围,这里着重推荐Coursera的视频课程,配合本地IPython或者LeetCodePlayground一起调试和练习,可以获得很好的效果。
③ 程序员的逻辑思维可以从哪些方面学习呢
逻辑思维的培养对软件工程非常重要,思维快的能快速编写逻辑代码。可以从一下几个方面进行慢慢培养。
第一:明确学习目的
逻辑思维学习编程对多数IT业人员来说都是非常有用的。学编程,做一名编程人员,从个人角度讲,可以解决在软件使用中所遇到的问题,改进现有软件,可以为自己找到一份理想的工作添加重要得砝码,有利于在求职道路上谋得一个好的职位;从国家的角度,可以为中国的软件产业做出应有的贡献,一名优秀的程序员永远是被争夺的对象。学习编程还能锻炼思维,使我们的逻辑思维更加严密;能够不断享受到创新的乐趣,将一直有机会走在高科技的前沿,因为程序设计本身是一种创造性的工作。知识经济时代给我们带来了无限的机会,要想真正掌握计算机技术,并在IT行业里干出一番事业来,有所作为,具有一定的编程能力是一个基本条件和要求。
第二打好基础,学好基础知识对我们开发也很重要学编程要具备一定的基础,总结之有以下几方面:
首先是数学基础 从计算机发展和应用的历史来看计算机的数学模型和体系结构等都是有数学家提出的,最早的计算机也是为数值计算而设计的。因此,要学好计算机就要有一定的数学基础,出学者有高中水平就差不多了。
其次是逻辑思维能力的培养 学程序设计要有一定的逻辑思维能力,“逻思力”的培养要长时间的实践锻炼。要想成为一名优秀的程序员,最重要的是掌握编程思想。要做到这一点必须在反复的实践、观察、分析、比较、总结中逐渐地积累。因此在学习编程过程中,我们不必等到什么都完全明白了才去动手实践,只要明白了大概,就要敢于自己动手去体验。谁都有第一次。有些问题只有通过实践后才能明白,也只有实践才能把老师和书上的知识变成自己的,高手都是这样成材的。最后是选择一种合适的入门语言 面对各种各样的语言,应按什么样的顺序学呢?程序设计工具不外乎如下几类: 1)本地开发 应用软件开发的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;数据库开发工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。 2)跨平台开发 开发工具如 java 等。 3)网络开发 对客户端开发工具如:Java Script 等;对服务器开发工具如:PHP 、ASP 、JSP 、ISAPI 、NSAPI 、CGI 等。 以上不同的环境下几种开发工具中 VB 法简单并容易理解,界面设计是可设化的,易学、易用。选 VB 作为入门的方向对出学者是较为适合的。
第三:注意理解一些重要概念
一本程序设计的书看到的无非就是变量、函数、条件语句、循环语句等概念,但要真正能进行编程应用,需要深入理解这些概念,在理解的基础上应用,不要只简单地学习语法、结构,而要吃透针对这些语法、结构的应用例子,做到举一反三,触类旁通。
第四:掌握编程思想,编程思想使用较多的就是oop编程思想
学习一门语言或开发工具,语法结构、功能调用是次要的,最主要是学习它的思想。例如学习 VC 就要学习 Windows 的内在机理、什么是线程......;学习 COM 就要知道VTALBE 、类厂、接口、idl......,关键是学一种思想,有了思想,那么我们就可以触类旁通。
第六:多实践、多交流,一切思维来自项目开发的积累
掌握编程思想必须在编程实际工作中去实践和体会。编程起步阶段要经常自己动手设计程序,具体设计时不要拘泥于固定的思维方式,遇到问题要多想几种解决的方案。这就要多交流,各人的思维方式不同、角度各异,各有高招,通过交流可不断吸收别人的长处,丰富编程实践,帮助自己提高水平。亲自动手进行程序设计是创造性思维应用的体现,也是培养逻辑思维的好方法。
第七:养成良好的编程习惯
编程入门不难,但入门后不断学习是十分重要的,相对来说较为漫长。在此期间要注意养成一些良好的编程习惯。编程风格的好坏很大程度影响程序质量。良好的编程风格可以使
程序结构清晰合理,且使程序代码便于维护。如代码的缩进编排、变量命令规则的一致性、代码的注释等。
第八:上网学编程
在网上可以学到很多不同的编程思想、方法、经验和技巧,有大量的工具和作品及相关的辅导材料供下载
8.加强计算机理论知识的再学习
思维培养学编程是符合“理论→实践→再理论→再实践”的一个认识过程。一开始要具有一定的计算机理论基础知识,包括编程所需的数学基础知识,具备了入门的条件,就可以
开始编程的实践,从实践中可以发现问题需要加强计算机理论知识的再学习。程序人人皆可编,但当你发现编到一定程度很难再提高的时候,就要回头来学习一些计算机科学和数
学基础理论。学过之后,很多以前遇到的问题都会迎刃而解,使人有豁然开朗之感。因此在学习编程的过程中要不断地针对应用中的困惑和问题深入学习数据结构、算法、计算机
原理、编译原理、操作系统原理、软件工程等计算机科学的理论基础和数理逻辑、代数系统、图论、离散数学等数学理论基础知识。这样经过不断的学习,再努力地实践,编程水平一定会不断提高到一个新高度。
④ 程序员日常生活面临的问题和挑战有哪些
一、熬夜
很多程序员将熬夜变成了生活习惯,还口口声声解释“程序员只有在晚上效率才高”,这是非常扯淡的理论。有人将程序员做下图的类比,虽然比较贴切,但这种方式对你的健康伤害是最大的。建议你尝试一下晚上10点睡觉,早上6点起来工作的作息方式,也许会事半功倍。
二、久坐
有些程序员在电脑面前一坐就是一天,中间除了吃饭上厕所外,基本不起来动动。这是非常不好的习惯,时间久了,很容易得肩周炎、颈椎病,到时候后悔就晚了。建议每坐一个小时就起来动10分钟,主要是转转手臂和脖子。
三、外卖和泡面
很多程序员在饮食上也非常不注重健康,上班的时候为了贪图方便经常叫一些外卖,更厉害的是直接搞一桶方便面来做午餐。这里建议大家中午出去吃,荤素搭配,再可以弄点水果。
四、缺乏锻炼
建议在工作日下班后做一些简单的球类运动,乒乓球、羽毛球。
五、用眼过度
IT公司的员工的体检报告中大部分程序员都患有“慢性结膜炎”,当然对于这个病并不是长时间对着电脑引起的,但是用眼过度也会加剧“慢性结膜炎”的恶化。
建议大家平时准备防止眼干的眼药水,如果确定是结膜炎的话,还要及时去医院就诊。另外电脑的背景可以设成绿色,这样对眼睛也能起到一定的保护作用。
⑤ IT技术人员必须思考的几个问题,千万别不当
1.搞IT的是屌丝、码农、程序猿?
人们提到IT人的时候,总会想到他们呆板、不解风情,专注于IT技术,就算性感的美女躺在旁边也无动于衷。事实真的是这样吗?虽说不能完全否定有这样的情况存在,但这是IT人普遍的特点吗?而其它行业也有很多这样的人,那为什么人们总是拿程序员说事?下图为2013年网上曾经流传的一张屌丝分布图(图片来自3dmgame.com),程序员行业居首。
而实际上,问题并不在于IT行业拥有这些固有的标签,而是行业内的人看待自己的态度。IT行业大多都很辛苦,“朝九晚五”只是听说过,很多IT人都没有见过,这是大家都知道的事实。那么,不排除某些程序员需要在苦中找乐子,好让辛苦的工作多一份乐趣,这当然是可以理解的了,生活总不能像程序一样执行。
而正因为IT行业很辛苦,整天只能与机器打交道,慢慢地就不想跟人说话、不想出门,经常就会有程序员在社交网络吐槽。“程序猿”是用来形容IT人呆板、情商低的特征;“码农”用来形容程序员的工作跟农民一样辛苦,赚不到钱;“屌丝”就是前面两者的结合了。
因此,程序员为自己贴这几个标签的原因主要有两个,一个是找乐子,另一个就是吐槽了。那为什么行外的人也来凑热闹?记得多年前,当笔者还是个朦胧的高中生的时候,就特别崇拜程序设计师,在我心里他们就是社会的精英。而其他的人,对IT行业也很有神秘感。当时的人要想去编程,要么有兴趣和天赋,要么毕业于相关专业,否则是难以胜任的。而现在的情况就不同了,外面的软件开发培训机构都在面向初中和高中毕业生招生了。越来越多的人可以接触到软件开发,而进入这个领域的人中,能力参差不齐,目的各不相同,有发展得很好的,也有发展得不理想的。所以,行外的人印象中的高薪行业,行内却有不少人并没有拿到高薪;行外的人觉得这是一个精英行业,而行内不少人认为自己跟工地上的搬砖工差不多。
那为何面对行外的调侃时,很多程序员表现得如此淡定?原因就很简单了,如果程序员对自己都是这种“调侃”的态度,别人怎么调侃都无所谓了,甚至还表现出欢迎或者引起共鸣。
2.如何看待工作中的加班以及确保自身健康?
加班可以分为主动加班和被动加班。
先谈谈主动加班,主动加班也是有不同的动机,很多时候分为两类,一类是热衷于自己的事业,愿意奉献更多的时间和精力在事业上面;另一类是,回家后就找不到成就感与幸福感,还不如留在公司,可以做一些工作,也可以玩一会儿游戏,一般不会有领导去干涉员工在下班时间做的事情,而且还可以节约一点空调的电费,有些公司还会提供加班补贴,因此他们觉得多在公司呆几个小时也挺好。
而被动加班的原因就没那么简单了。有可能造成被动加班的原因很多,它可能来自公司、领导、团队、个人以及一些不可抗拒的因素。
在创业公司,因为业务变动频繁,公司的决策和方向,也会瞬息万变,这就需要团队成员花更多的时间去应对这些变化,因此正常的八小时工作制一般不适合创业公司,除非创始团队足够牛,能保证非常好的工作效率、市场洞察力和执行力。当然在大公司一般不会出现业务频繁变动的情况,不然这家公司就是濒临倒闭了。在国内某些互联网巨头中,加班不仅已经成为家常便饭,而且有时候可以以“变态”来形容。某985高校毕业生A在毕业后进入某互联网巨头(为了保护相关人员或组织的隐私,本文尽量不出现特定人员或组织的名称)承担开发工作,在试用期三个月里兢兢业业,每天晚上24:00左右下班回家,试用期结束以后,转正考核以优秀通过。A凭借较强的学习能力,这时对自己项目组的业务和技术非常熟悉,已经可以提前完成领导安排的任务,甚至还主动去改进项目组的程序。随着工作效率的提高,A感觉没有必要跟其他同事一样必须呆到23:00之后才回家了,所以慢慢的他提前离开了,23:30,23:00,22:30,22:00,21:30。随着时间一点一点提前,虽然他的工作任务都保质保量完成了,但是他在领导眼里被贴上了“不尽职”的标签,月度考核从最初的A滑到了C。
而团队所带来的加班有些时候也是不可避免的,这涉及到团队的分工与合作,如果经常出现团队之间的协作导致的加班,那一定是团队成员工作的耦合度太大了,就有可能是技术架构或者团队分工出现严重问题。
个人导致的加班,可能是由于自己没有较为准确地预估工作量,也有可能是自己拖延症严重,还有可能是自己对技术不够熟悉等原因,其实个人原因最好解决,因为自己可以轻松地找到这类加班问题的症结,并对症下药。
其它一些不可抗拒的因素,包括需求变动、硬盘永久性损坏等,都会带来很多额外的工作量。
而当前国内大多数IT技术人员都是被动加班,而且是强制性质的,只有极少数公司提供加班费。因此,很多技术人员只有两种选择,要么适应,要么走人。而在中国这样一个发展中国家,也很难期待当局会强烈干涉这个现象。
前不久一则“深圳36岁IT男猝死马桶盖上”的新闻在互联网引起轰动,一个清华毕业的程序员,在长期连续加班之后,终因身体透支过多,年轻的生命就这样倒下了。从尊重生命的角度来说,事业、公司和客户都没有自己的生命重要,若事业与生死只能选择一个,相信绝大多数人会选择生存。而从所谓的“XX比生命还重要”的角度而言,如果你能够承担长期过度加班所带来的后果,或者原意像革命先烈一样为自己的事业献出生命,那谁也没法阻止你。
3.技术牛人如何对待新手?
在公司里(特别是大公司),一般会有一些技术大牛,他们是公司核心的技术人员,支撑着整个公司的技术平台。那些可以称得上技术专家的员工,一般性情随和,也表现得非常谦卑,他们对于技术新手的提问特别有耐心。但是也有少数技术还不错的人,对于职场新手各种瞧不起,特别是对于新手程序员犯下的错误,他们会用尽可能高的音量指出错误,甚至是谩骂,以此来向周围的人表明自己的技术是多么牛。只能说,作为IT技术人员,这样的表现很不成熟。高手或专家都是从小白起家的,今天的小白也许就是明天的专家,根本没有必要去嘲讽职场新人,那样只会让自己在同事眼里的魅力大打折扣。
4.是否经常把自己的思想强加给同事?
程序员群体有个比较普遍的现象就是,总觉得自己的想法是最好的。而人人都有自己的想法,只是有些人喜欢表达出来,而有些是埋在心里。允许他人评判你的想法,客观去分析他们的观点,而不是粗暴地强加给他们,这是一种个人魅力。
5.IT人可以做多久的技术?
笔者在大学期间,经常听人说IT人是吃青春饭的,过了35岁就写不了代码了。如果干到了35岁还停留在写代码层面上,估计那时是干不过毕业没多久的年轻人了。
6.如果某一天计算机自动编程不需要人类编程了,你还可以做什么?
随着人工智能技术的发展,若未来机器可以代替程序员进行编程了,程序员还能做什么呢?计算机和互联网的发展,消灭了很多传统职位,但随着科技的不断发展,程序员这个职位也许会有一天也被消灭了。当全球的IT公司都宣布废除人工编程时,程序员应该是回家还是转行呢?
7.如何定义成功
毕业多年后,同学之间总会有人讨论谁混得好谁混得差。那么好与差的标准是什么呢?是赚了多少钱,有没有在北上广深买房,当了多大的官、是否在BAT工作?不同的人有不同的评判标准,但多数是以钱来衡量他是否成功。但成功的标准就这么单一?如果一定得给成功下一个定义,那么成功应该这样来计算:
成功度(S)=(工作快乐度*工作快乐权重+工作薪资*薪资权重+ ... + 生活快乐度×生活快乐权重 + 家庭和睦度*家庭和睦权重 + ...)/n
这里S最大者才是最成功的人。
希望可以帮到您,谢谢!
⑥ 程序员想要全面发展需要注意哪些问题
一个人能力的成长不局限于技术能力的提高,而是全面发展,这就要求我们在工作中不断总结和反思。对于程序员来说,工作中的成长是必不可少的,如何才能更好的进行全面发展呢?下面云南java培训为大家介绍程序员想要全面发展需要注意的问题。
程序开发是需要进行团队合作的,一个优秀的软件产品自始至终是无法由一个人做出的,所以昆明UI设计认为想要成就一个完美的产品,一定不能小看团队的力量。
沟通技巧是导致项目成功或失败的关键性因素。与技术相比,云南计算机学习认为沟通技术对一个项目的成功起着重要的作用。如果我们召集了全世界的5名数据库专家,但是他们按照自己的意愿行动,并且也不互相进行沟通,那么最终是无法达到目标的。
如果你想做好工作,不仅要了解这些业务,而且要积极参与其中。即使你不属于公司的C位,它也不会影响你,至少,你需要了解你在做什么。如果代码审查使您感到压力,那么云南昆明IT培训会发现在打开时一定存在错误。虽然我们不必这样想,但很多人会感到急于发布自己的代码,让别人“观看和评论“。
⑦ 程序员在学习新技术要思考哪些事
先看下面这样的困惑:
最近了解了几个MVC的框架,其中有两个是公司内部的。发现这些东西都是类似的,从处理逻辑到页面渲染;从service到layout;配置的实现无非就是XML,或者annotation……我有种感觉,兴许已经跳不出这个思维圈子了?
如今的时代,是一个概念翻飞的时代,oschina里的开源软件数量就已经超过了两万,五花八门的技术层出不穷,到底什么技术才是值得学习的?
有位朋友说,他想学习一些关于Android上的开发技术,兴趣驱使。几个月过去了,他说他已经能做出许多小程序了,可是他现在回想起来,掌握一门技术是好,可兴趣之外还有什么呢?他说,“如果我的工作中不使用Android平台,我学它还有何用?”。
学习技术到底是一件有意思的事,还是一件痛苦的事?读书的时候,我曾经买过侯捷翻译的《深入浅出MFC》,对那时的我来说,似乎太困难了一点,我强迫自己看完了三分之一,实在是没有毅力继续往下读了。我在其中察觉不到快乐,这本书在当时似乎充满了生涩。
如上这样的故事太多了,很多时候,程序员们(包括我在内)辛苦地学习,有的没有好的效果,有的过程充满痛苦,有的更是不知道我学它的目的是什么。
国内的教育体制,培养了这样一批人:
他们努力、奋进,热爱技术,愿意投身软件行业,愿意写出高质量的代码,他们对业界的东西很感兴趣,他们愿意学习扎实的基础知识,他们渴求火热的新技术……
几年以后,他们拥有广泛的视野,阅历宽阔、经验老到、言辞犀利,对行业动态了如指掌,显然,他们是行业的博学者。
然而……
他们却缺乏这样一种能力——思考。
欠缺思考容易导致这样的现象:
不会做设计
遇到了问题,拿见到过的、学到了的熟悉的框架、方案、模式往上套,而不仔细分析其中的利弊,只是尽可能地寻找最接近当前问题的解决途径。
有的是不会做系统设计。和少数所谓的“架构师”接触过,他们“只懂业务,不懂技术”,这样设计出来的系统只能满足功能性需求;而论坛上的一些具体问题的讨论话题,则暴露出一些跟帖讨论者“只谈技术,不提业务”,譬如“XXX大容量的解决方案”、“秒杀系统的终极架构”,企图对某一类宽泛的问题,设计出一套放之四海皆准的通用解决方案。
还有的则是不会做面向对象设计,缺少抽象和解耦的能力,这样的例子就更多了。朋友告诉我,他的单位有一位写Ruby的老员工,一个庞大的工程,代码里面居然只有一个上帝类,就搞定了所有的问题。
不能坚持自己的观点
这一点在面试中最容易观察到。应聘者有刚毕业的学生,也有工作超过10年的有丰富经验的从业者。他给出一个粗略的方案以后,在方案没有细化到一定程度以前,很难给出优劣的评论,但是,如果你轻轻地challenge一下,他就迅速放弃本来的构思,跑到你的思路上来。
例如,SNS系统中,服务端有消息要怎样通知到客户端,这样的一个问题,解决方案有很多种,比如客户端轮询、服务端hold住连接推送等,各有利弊。应聘者应当有自己的观点。
不能细化一个问题解决方案
怎样区分一个空谈家和一个实干家?给他一个具体的问题是最好的办法。在我刚工作的时候,我曾经很钦佩那些在活动中、讨论中高谈阔论的人,我觉得他们很能说。可是后来我逐渐发现,能说的人实在是太多太多了。细化设计、甚至落到编码,才是对一个程序员真实的检验。当然,如果你觉得做软件设计的人可以不熟悉编码、架构师可以不首先是一名高级程序员,那我们也没有什么可谈了 :)。
如果你会学习,你可以成长得很快;如果你不会思考,你永远只能跟在别人后面。
在新技术的学习上我认为也应当多思考,不同的人有不同的学习动机。在非外界所迫的情况下,对于新技术的学习,我的观点可以概括为:
它要解决什么问题,就是所谓的问题域,是我关心的吗?
我没有去研究操作系统底层的实现,并非这没有价值,而是我没有兴趣,这就是问题域的影响(不过现在我有兴趣了,我想做一些这方面的事情)。
和过往解决方案它的优势在哪里,是否显着?
这是competition,重复的技术是没有生存空间的(当然,你是微软的话除外 :) ),就像互联网同一个类型的网站,竞争到最后就那么两三家。就像Groovy,我很喜欢它,但是有了Scala以后,我觉得兴许有一个要死掉(Groovy创始人说,如果他早些知道Scala的话,就没有Groovy什么事了。具体的报道请去Google上搜他的blog)。
它的实现和带来的效果上看,有没有很有意思的思路,是值得借鉴和思考的?
这是最难讲的一个问题。以去年初开始接触的Node.js为例,它可以做到把后端的聚合(譬如portlet之流)放到前端来,后端只保留一种类型的页面服务——页面模板,以及若干易于管理的API接口,大大简化了后端体系的复杂度,而且还能把压力分散到前端来,这是我早些年不曾见到的。
这三个问题想过之后,觉得有价值,我才去学习。要不然,对我而言就是不想深入的东西,了解了解也就罢了。
新技术学习的方式呢,我想说这么几点:
寻找切入点
我很喜欢BlueDavy的blog上的一句话:“理论不懂就实践,实践不会就学理论!”。
最后最好是要落到动手实践上去的,但是倘若习惯从那些原理介绍的文字入手,未尝不是一种不好的选择。而且,现实情况会有一些约束,例如在了解几家互联网公司的云平台的时候(Amazon的EC2,M$的Azure等等),除非你是这几家公司的员工,否则是很难深入其中的。
寻找自己的兴趣点
学习应当是一件有意思的事情,当你的大脑排斥它的时候,我不相信可以很容易地掌握这门新技术。如果你找不到兴趣点,那么,不妨回到我前文对于新技术是否值得你学习的观点上去,既然你没有什么兴趣,你学它干嘛?
善于比较
比较是一种非常容易上手的思考方式,和什么比较?和相似技术比较,和操作系统、网络这些基础设施上面的例子比较,最后,和生活中的例子比较(譬如,Java NIO的实现是一个很好的例子)。
不断获得回馈
回馈是什么?做出一个HelloWorld的例子,就是一个极好的回馈;理解某一项实现原理,联想到其它类似的实现,产生一种恍然大悟的感觉,也是一种回馈。在学习的过程中,不断产生回馈,意味着你不断地收获成就感,这是继续下去的动力之一。
转载
⑧ 程序员的逻辑思维可以从哪些方面进行培养呢
程序员逻辑思维的培养对软件工程非常重要,思维快的能快速编写逻辑代码。可以从一下几个方面进行慢慢培养。
第一:明确学习目的
逻辑思维学习编程对多数IT业人员来说都是非常有用的。学编程,做一名编程人员,从个人角度讲,可以解决在软件使用中所遇到的问题,改进现有软件,可以为自己找到一份理想的工作添加重要得砝码,有利于在求职道路上谋得一个好的职位;从国家的角度,可以为中国的软件产业做出应有的贡献,一名优秀的程序员永远是被争夺的对象。学习编程还能锻炼思维,使我们的逻辑思维更加严密;能够不断享受到创新的乐趣,将一直有机会走在高科技的前沿,因为程序设计本身是一种创造性的工作。知识经济时代给我们带来了无限的机会,要想真正掌握计算机技术,并在IT行业里干出一番事业来,有所作为,具有一定的编程能力是一个基本条件和要求。
第二打好基础,学好基础知识对我们开发也很重要学编程要具备一定的基础,总结之有以下几方面:
首先是数学基础 从计算机发展和应用的历史来看计算机的数学模型和体系结构等都是有数学家提出的,最早的计算机也是为数值计算而设计的。因此,要学好计算机就要有一定的数学基础,出学者有高中水平就差不多了。
其次是逻辑思维能力的培养 学程序设计要有一定的逻辑思维能力,“逻思力”的培养要长时间的实践锻炼。要想成为一名优秀的程序员,最重要的是掌握编程思想。要做到这一点必须在反复的实践、观察、分析、比较、总结中逐渐地积累。因此在学习编程过程中,我们不必等到什么都完全明白了才去动手实践,只要明白了大概,就要敢于自己动手去体验。谁都有第一次。有些问题只有通过实践后才能明白,也只有实践才能把老师和书上的知识变成自己的,高手都是这样成材的。最后是选择一种合适的入门语言 面对各种各样的语言,应按什么样的顺序学呢?程序设计工具不外乎如下几类: 1)本地开发 应用软件开发的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;数据库开发工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。 2)跨平台开发 开发工具如 Java 等。 3)网络开发 对客户端开发工具如:Java Script 等;对服务器开发工具如:PHP 、ASP 、JSP 、ISAPI 、NSAPI 、CGI 等。 以上不同的环境下几种开发工具中 VB 法简单并容易理解,界面设计是可设化的,易学、易用。选 VB 作为入门的方向对出学者是较为适合的。
第三:注意理解一些重要概念
一本程序设计的书看到的无非就是变量、函数、条件语句、循环语句等概念,但要真正能进行编程应用,需要深入理解这些概念,在理解的基础上应用,不要只简单地学习语法、结构,而要吃透针对这些语法、结构的应用例子,做到举一反三,触类旁通。
第四:掌握编程思想,编程思想使用较多的就是oop编程思想
学习一门语言或开发工具,语法结构、功能调用是次要的,最主要是学习它的思想。例如学习 VC 就要学习 Windows 的内在机理、什么是线程......;学习 COM 就要知道VTALBE 、类厂、接口、idl......,关键是学一种思想,有了思想,那么我们就可以触类旁通。
第六:多实践、多交流,一切思维来自项目开发的积累
掌握编程思想必须在编程实际工作中去实践和体会。编程起步阶段要经常自己动手设计程序,具体设计时不要拘泥于固定的思维方式,遇到问题要多想几种解决的方案。这就要多交流,各人的思维方式不同、角度各异,各有高招,通过交流可不断吸收别人的长处,丰富编程实践,帮助自己提高水平。亲自动手进行程序设计是创造性思维应用的体现,也是培养逻辑思维的好方法。
第七:养成良好的编程习惯
编程入门不难,但入门后不断学习是十分重要的,相对来说较为漫长。在此期间要注意养成一些良好的编程习惯。编程风格的好坏很大程度影响程序质量。良好的编程风格可以使
程序结构清晰合理,且使程序代码便于维护。如代码的缩进编排、变量命令规则的一致性、代码的注释等。
第八:上网学编程
在网上可以学到很多不同的编程思想、方法、经验和技巧,有大量的工具和作品及相关的辅导材料供下载
8.加强计算机理论知识的再学习
思维培养学编程是符合“理论→实践→再理论→再实践”的一个认识过程。一开始要具有一定的计算机理论基础知识,包括编程所需的数学基础知识,具备了入门的条件,就可以
开始编程的实践,从实践中可以发现问题需要加强计算机理论知识的再学习。程序人人皆可编,但当你发现编到一定程度很难再提高的时候,就要回头来学习一些计算机科学和数
学基础理论。学过之后,很多以前遇到的问题都会迎刃而解,使人有豁然开朗之感。因此在学习编程的过程中要不断地针对应用中的困惑和问题深入学习数据结构、算法、计算机
原理、编译原理、操作系统原理、软件工程等计算机科学的理论基础和数理逻辑、代数系统、图论、离散数学等数学理论基础知识。这样经过不断的学习,再努力地实践,编程水平一定会不断提高到一个新高度。
这就是总结出来的思维培养模式,希望能帮到你,谢谢!
⑨ 程序员可能遇到的问题有哪些
很多人都说程序员是很苦很累的职业,但是这只是外表看到的,如果不深处其中是无法感受的。程序员也会出现很多无法解决的困难,除了身体上的累以外,在工作中还会遇到很多烦恼的事情,这些事情可能是什么呢?下面云南电脑培训为大家具体介绍。
1、错误的团队
如果你不幸选择了一个错误的团队,经常遇到问题是不可避免的。很多时候并不是任何人的错,但是团队里面的人会因为各种问题感到不开心,或者对琐碎的事情感觉到厌恶,这些都是影响团队氛围的关键点。如果其他人只关心自己的职业生涯,这将是一个糟糕的队友,所以云南IT培训认为一个错误的团队会让你度过一个艰难的时光。
2、荒谬的要求
一些项目需求就像科幻小说,非常抽象,而且根本不实际。拥有想象力的项目肯定是好的,但想象力必须适应团队。如果项目团队中有很多近期毕业生,那么昆明IT培训认为想要在项目中使用抽象内容是不太可能的,想要创建出最好的内容更是困难。
3、外行的期望
过高的期望值反而会影响程序员的发挥, 现在很多外行人对程序员的了解非常片面,导致对程序员的期望值过高,把程序员想象成超人。其实对于程序员来说,一个项目的开发和实施是需要很长过程的,并且还需要进行多次调试,程序员需要更多的时间进行调试。外行人应该对程序员做到正确的认识。
4、咖啡中度过夜晚
在很多情况下,超负荷的工作是经常的事情,尝试完成超越身体极限的工作量。昆明电脑培训发现如果当项目遇到问题的时候,需要非常尽力的去解决问题,这是会增加额外的加班时间,很多时候可能会直接工作到深夜。对于程序员来说,遇到问题,及时解决问题是非常重要的,咖啡能够帮助程序员度过漫长的黑夜。
⑩ 为什么程序员的思维很难理解
1、程序员的思维比普通人要严谨。
对编程有一定了解的人都能理解这一点,一是一二是二,电脑不认模棱两可的回答,因为“模棱两可意味着更多的可能答案”,所以你跟程序员交谈的时候,如果你问他“为什么要这样问”或“你为什么听不懂”,你就会知道你自己的描述有多么的不严谨了。
最简单的例子,你妈妈让你去市场买水果,如果看到有苹果就买一个苹果,看到梨就买两个。你看到市场有苹果和梨,你会买什么回家?
首先给出一个大前提,在程序上不存在“潜台词”或者“潜规则”这种东西,唯一起作用的只有“字面意思”。
一般人肯定是买一个苹果和两个梨。当然程序员也不是脑子有坑,以一个正常人的思维考虑也会买一个苹果和两个梨,但是看到这问题的第一个瞬间的直觉反应,却是“如果看到梨就买两个苹果”。这个问题不存在潜台词,所以所有人都会直接从字面理解老妈的意图。
按照程序的逻辑分析,这句话共分为两个部分,代表两个程序任务。“如果看到有苹果就买两个苹果”为任务一,条件是“看到有苹果”,目标对象“买苹果”,数量“一个”;“如果看到有梨就买两个”为任务二,条件是“看到有梨”,数量“两个”,没有给出新的目标对象。
因此按照程序逻辑来讲,第二句话将继承上一个目标对象,也就是“买苹果”,所以这句话被看起来像职业病一样的思维直接翻译成了“如果看到有苹果就买一个苹果,如果看到有梨就买两个苹果。”
————————————————————
2、程序员看问题比一般人透彻。
这是职业特性导致的,因为电脑编程的严谨性,因此程序员面对一个问题、一个需要实现的目标或者一个bug时,他会思考更底层的问题,并且会习惯性采用归纳法来尽量避免以后可能遇到同样的问题。
比如用输入法输入中文的词句,有的时候打出了一串拼音,然后按下数字2选取发现不是自己想要的词,然后发觉数字1对应的才是自己想要的,删掉,重新输入拼音,这次按下数字1的瞬间却发现两个词的位置调换了,于是又删掉重新键入,这次认真地看了看,终于选对了想要的词的序号。
这个时候你会说,啊,我下次应该更小心一点,不要马虎大意想当然,看清楚了再点。
程序员不这么想,他会想,导致这个问题的看来是输入法的“词语顺序自动调整”功能,他会自动监测使用者输入的各种词语的频率,来自动调整词语的顺序,底层代码实现的逻辑很简单,每个不同的词对应一个从输入法安装到现在的输入次数的计数器,直接按计数器排列顺序就好了;也有的输入法会监测你输入后是否会将其删掉,那么这时候会被智能识别为打错字,计数器不会加一。
然后再一思考,这种功能一般都是可以开关的,如果我想要靠记忆记住顺序使用而不用输入法自动调整的话,比如对汉字输入的速度有一定要求需要考记忆记住汉字序号,我只需要进入输入法设置将其关掉即可;如果我想要它帮助我调整词句位置,但是又不需要频繁地调整,那么在我有工作需要的时候我会提前关掉,平时开启即可;而如果我想单纯依赖这一功能,那就不用管它,下次看清楚再选就好了。