Ⅰ 网络工程师、软件工程师、程序员哪个比较简单、待遇方面比较好
要待遇比较好的一般都是不简单的,有难度的待遇才会好,越难的事情做的人越少,待遇就越好。在这几个里面程序员算是最简单的吧,但待遇最好的是最难的软件工程师,网络工程师也不错,难度较大,涉及的知识面非常广,待遇也不错
Ⅱ 程序员学习技术是深度优先还是广度优先
个人建议广度优先。 因为你必须知道适合什么, 才能够确定自己想要深入的。公司有个孩子做了四年流媒体,发现根本不是自己喜欢的行业, 然后转行ios, 又开始从最底层做起。 转型有痛点, 如果不能博览整个行业, 没有一个整体的知识体系, 很容易沦为重复劳动的码农。
Ⅲ 一个程序员要具备的基本素质是什么
团队精神和协作能力 :
把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本。
文档习惯:
作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。
规范化,标准化的代码编写习惯:
作为一些外国知名软件公司的规矩,代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。
需求理解能力:
作为程序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能性。就这一点,一个成熟的程序员至少需要2到3年的项目研发和跟踪经验才有可能有心得。
复用性,模块化思维能力:
复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作。
测试习惯:
软件研发作为一项工程而言,一个很重要的特点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效率和可靠性就有了最大的保证。
学习和总结的能力:
善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种要求就更加高了。但是学习也要找对目标,一些小coding fans们,他们也津津乐道于他们的学习能力,一会学会了asp,一会儿学会了php,一会儿学会了jsp,他们把这个作为炫耀的资本,盲目的追逐一些肤浅的,表面的东西和名词,做网络程序不懂通讯传输协议,做应用程序不懂中断向量处理,这样的技术人员,不管掌握了多少所谓的新语言,永远不会有质的提高。
Ⅳ 由程序员到架构师,应该是先注重技术的广度还是深度
架构师要对框架的原理理解透彻,对设计模式深入理解。
而程序员更多的是熟练掌握一门语言,在需求设计明确之后予以实现(此时框架都已经确定好了)。
二者所需的领域知识是不同的,不是技术的广度和深度问题。
Ⅳ 普通的程序员和大神级的程序员有什么区别
知识面,经验。
大神能看到问题的本质,程序猿只能看到表象。
大神一般是某个领域的,有更丰富的背景,更深刻的认识。
Ⅵ 现在程序员有前途吗我一直想从程序员做起,然后构架师什么的,我不是学计算机专业的,学编程就是自学的
作为一个不是科班出身、没有正规学习过计算机知识的架构师,想在这里把我这几年学习的经历体验和大家分享一下,谈谈自己对架构师成长之路的一些感想。
奠定扎实的理论基础
千里之行,始于足下!技术不是一蹴而就的事情,而是长时间积累的成果。扎实的基本功是做好所有事情的开始。到现在我还记得对我影响非常大的几本书:
■《C++编程思想》
■《深入浅出MFC》
■《Windows 核心编程》
■《数据结构》《编译原理》
我学习计算机正是按照这几本书的顺序,之前学习C的经历就不必说了,而转折点正是《C++ 编程思想》——它让我感觉到程序和语言竟然这么有意思,至今仍对虚表的概念记忆犹新,尤其指针的用法,对我以后学习Java语言有很大的帮助,对多态和语言的特性也有了很高的认识。
《深入浅出MFC》这本书,记忆最深刻的还是其中强大无比的宏定义和对象层次设计。然而学习MFC的过程中,我遇到的最大问题就是:很多东西都是黑盒的,这引发了我刨根问底的欲望。所以后来我学习了《Windows核心编程》,这本书给我的最大收获,就是了解了很多操作系统底层的知识,操作系统是如何运行的。不过遗憾的是,如果当时从Linux 或者Unix 开始学习,应该会了解得更系统一些。
之后我深入学习了《数据结构》和《编译原理》。这是我经过了很多实践以后,又回过头来重新学习。拿《编译原理》来说,以前对这门学科的了解非常有限,后来为了实现一个东西,要用到脚本语言,找来找去找到了Velocity(后来想想使用Groovy 应该更好一点),用了以后觉得很好。以前修改程序逻辑,是需要重新编译或者修改配置重新发布才能OK,而现在只需要编辑然后保存一下,就能得到自己想要的结果。这令我着迷,于是想知道它是如何实现的,翻看源代码才晓得原来还有 JavaCC这个东西。就这样,我从解释语言入手,逐渐开始了疯狂学习编译原理的过程,越发觉得编程语言非常有意思。
回头想想以前和现在学习的语言,感觉程序语言就是在不断抽象:从汇编、C、C++, 再到Java、C#,再到更动态一点的语言如Perl、Python、Ruby 等等。不管它再怎么变、再怎么抽象,还是编译原理应用的产物。
讲了这么多,就是想强调理论基础知识的重要性!虽然我们现在使用的框架如此之多,但是如果你有了扎实的基础理论知识,这些东西就跟玩具一样。基础就是一个无招胜有招的杀手工具。
培养完善的抽象思维
抽象的能力也是作为一名好的程序员必须具备的能力。我们在考虑问题的时候可能会遇到错综复杂的场景,从这些迷雾中找到一条明路是我们做好程序员的关键。这些年来学习了很多框架,回过头来想想自己都有点后怕,这也令很多初学者望而生畏。但认真想想,真的有那么可怕吗?
让我们从语言层面逐渐剖析这个问题,应该很容易做出解释。程序语言就是我们在某种场景下交流的工具,汇编是机器语言;C和C++ 是编译型语言,它们是一种针对汇编的高级抽象;而Java 和 C# 就是更高级的抽象了,甚至于抽象了一层虚拟机出来(这个产生的影响就是,之后的很多高级语言评判标准,都是“是否支持虚拟机”),再到后面的许多动态语言,那就是更抽象了。说到这里你会问到,讲这么多语言类的东西和学习框架有什么联系?让我慢慢道来。
我们使用一种语言就是用它的语法进行编程,而学习一个框架实际也是为了用这个框架所提供的语言来写程序:Struts——我们使用很多配置还有 Action 和Form ;Spring——我们使用Bean 模型,这是它的最基本模型(现在 Spring 已经庞大得让很多人无法学习了);iBatis——我是用它的XML-SQL 模型;JBPM——使用它所谓的GOP模型(面向图元的编程);Web flow——是在使用它的页面流模型。这样的例子我可以举出很多(这也是DSL现在如此流行的原因)。
很多人会说:学习这么多我已经晕掉了!不妨想想,为什么会有这么多东西存在? Struts 是为了解决Web编程的困扰;iBatis、Hibernate 是为了解决在数据库编程时的麻烦;原有的Web页面编程都是独立的具体单元,Web flow能够让这些页面形成流的形式,让开发更顺其自然;从JBPM的GOP可以看出,JBoss 的开发人员对抽象的理解度很深。我举这么多例子,实际是让大家不要害怕现有的这些框架,有了扎实的基础,抽象的概念是很容易理解的!缺乏抽象的能力,你就不能更快更好地解决问题。
实际抽象能力衍生出来的一点就是,需要我们对已学过的知识定期进行梳理。这样能让你巩固已有的知识,为以后的学习做好准备。知识就好比一棵生物进化树,最终目标都是一样的,关键是看如何选择进化的路线,让自己的知识结构能够有机的结合在一起。做到学以致用。过一段时间就梳理一下,你会有更多的发现。
扩充现有的知识层面
在巩固原有知识结构的前提下,我们更需要扩充现有的知识面。井底之蛙,看到的永远是井口大的那片天,只有跳出来,才能看见无限美好的蓝天白云。我曾经也常常局限在自己已熟悉的那块领域沾沾自喜,但是走出来以后才发现,自己原本是多么肤浅!学习的知识越多,对新事物的洞察力将会越准确!这样有助于你巩固已有的知识,系统地学习新的知识。
那我们是否需要无限平行式的学习知识呢?我的答案是“No”。人的知识面是有限的,我们需要一个T型的知识结构。你的知识面要广,但是对于某些技术点要专,这才是做好一个架构师的关键。有时 “专”可以让你对很多“广”的知识产生触类旁通的感觉。
实践也是非常重要的一环,不要有畏难心理,觉得这个东西太难,我无法完成!有时候事情的结果可能是糟糕的,但是过程是非常宝贵的,其中可以学习到很多东西,同时也可以让自己避免轻浮的心理。
还要着重培养自己良好的沟通与解说能力。架构师面对客户群具有多样性,有技术工程师、业务人员、公司管理层,甚至直接面对客户等。要把一个高度抽象又复杂的系统说清楚,这对于架构师来说也是一种挑战。所以架构师必须掌握技巧,应用多种表达方式来阐述架构与产品设计、与具体业务、与公司战略之间的关系等。培养良好的沟通能力,多和周围的人进行沟通,你能够学到更多的知识!
“平衡”是架构设计的艺术,我们设计一个东西,就是在平衡各方面的利益。平衡有可能是时间上的,比如需要支持多少年的系统可用性;平衡有可能是纵向的,比如要支持系统的向下兼容性,要保证程序员编程模型上的简单性等等。这种平衡就是因人因时因地而异了。平衡的把握很可能就是评判一个架构师架构水平的标准!架构师在设计的时候应该权衡维度、整体性和扩展性,考虑问题时不要局限于自己的一亩三分地。多种点田,会长出很多庄稼的!
拥有一个扎实的基础,不断扩充自己的知识面、完善知识体系,在对现有知识抽象的基础上,不断去沟通实践,你将获得更强的架构平衡能力。最后我还要说,业务知识非常重要,这个是你实践的关键!
Ⅶ 求助,有人清楚现在IT程序员的就业前景是怎样的吗
IT行业的迅猛发展,带动了企业对IT人才的大量需求,很多人都准备从事IT行业。那么IT行业学什么好呢?IT行业发展前景怎么样呢?
首先要看自己的兴趣,其次要根据市场需求来选择,现在很多IT行业技术都非常火热,具体还得看自己的兴趣与市场需求来确定。
IT行业发展前景怎么样呢?
优势之一:前景好,就业容易
据相关资料显示,未来五年,我国IT人才缺口多达60到100万人,随着智能手机的发展,IT人才将更加吃香。
优势之二:有钱途,收入更高
国内有一到两年开发经验的软件工程师年薪达10万以上,据知名猎头公司的预测,未来几年,高端IT人才的薪资将会持续上涨。
优势之三:工作轻松,环境好
软件企业都在宽敞明亮的办公大楼,工作环境好,程序员大部分的朝九晚五双休的工作,工作更加轻松,生活有规律。
优势之四:更体面,高端时尚
IT行业,薪资待遇高,工作更体面,高端,时尚,是时下性价比最高的技术,选择IT行业,你的未来将拥有更大的发展空间。
Ⅷ 企业对JAVA程序员,是喜欢知识面少而精的,还是要广而希的。
最好是又广又精 ^_^
其实都是相对的,很多东西就是个 API 的调用,用过没用过又有多大的差别
所谓的精,你又能做到多精?个人比较不推荐那种研究源码的,太花时间、意义不大
事实上,企业面试比较讲究独立思考、处理问题的能力
我面试通常都要求应聘的把最近的项目背景、技术情况介绍一遍,然后针对其中处理的细节提问。
Ⅸ 程序员应具备哪些知识
逻辑思维能力强(理工科)
英语阅读能力好
能承受较大的压力
具有团队精神
Ⅹ 关于考程序员的一些问题
恩,楼主的分法已经过时了。
自从软考改革后,就分为:程序员-软件设计师-系统分析师 这三个级别。
程序员大概等于原来的初程和中程,软设就等于高程,
程序员考的比较简单,但是面比较广,如果你是计算机专业的,基本上看看清华出的辅导书:《程序员考试辅导》,然后做下真题,过一点问题都没有。