1. 学程序员前景怎么样
随着大数据,云计算,物联网,人工智能的火热发展,需要大量的从业人员,软件编程薪资待遇一直比较高,而且刚过完年,京东,阿里又要招聘相关从业人员,而且凡是进入这个行业的开发人员工资都是水涨船高,有个几年年的工作经验的反而会更好找工作,薪资会越来越高
编程算是一个门槛比较高的职业了,长期以来都是供不应求的,而且从这么多年看来,需求量始终不减,工资一直都是比较高的,即使之后学编程的人越来越多,只要是属于前20%的,何愁应聘时工资会降低呢
从个人角度来看,编程从现在以及随后几十年间都是一个非常有前景的行业,除非到了市场非常饱和,程序员遍地都是的情况,但目前显然不是,去任何一个公司招聘人员上看,互联网行业都算是比较火爆的行业,招录程序员的不在少数,工资比一般水平要高很多,即使像文科出身的,都想要在业余时间学编程,但可惜自学难度太高,又没有系统的时间去报班学习,实在是一大遗憾
那么,我们来聊聊编程难吗?
很多时候,做的事情其实没有我们想象的那么难,只是我们把他想难了,举个例子,我们都知道要学好一个技术做好一件事,必须要掌握一万小时定律,其实这个观点说对也对,说错也对,怎么讲呢?一万小时定律是需要成为专家级别的人语言奋斗的时间,而真正学习一门技术,如果只是入门,其实仅仅只需要二十小时,如果每天花两小时来建议,那么入门也就十天就可以搞定,编程也是如此,如果我们仅仅只是入门,其实真的在我看来找准方法,十天半个月足够了,当然如果说要找到工作,那估计要四个月到半个月的每天学习努力
怎么学习?
重视基础,这个不是喊口号,很多人学习编程眼高手低,觉得自己能看懂,能随便写点东西就算学会了,问了一些基础东西一问三不知,还不服气说会编程就好,要懂那些做什么,这是最大的错误,基础很重要,例如,你不知道面向对象的编程语言特点,你如何去做方法的封装?如何去做类的继承和如何能明白别人写这段代码的时候为什么要这么处理?这些都是基础能告诉你的
编程是个手脑并用的活,光看懂明白是没有用的,如果不用手去敲一下代码永远不知道自己会饭什么错,我曾经因为一个空指针问题排查了一个小时,也因为一个地方没写分号找了半天,这些都不是看书就能得来的经验,在我烦了这些错误之后我会总结,记下来,作为我自己的经验,然后下次再遇到就知道自己曾经在这里犯错了,就会小心不在犯错
2. 程序员是做什么的
程序员一般的工作是从事程序开发、程序维护。
程序员是从事程序开发、程序维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类。具体工作职责如下:
1、负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态。
(2)看懂程序员扩展阅读:
职业要求
一般的程序员都有四年的在专业领域的学习,需要一个在程序领域的学士学位获得者,不论是数学方面的还是工程方面的都是可以的。
大约有20%的人在这一领域的计算机科学和工程学拥有更高的学位。还有很小一部分程序员是自学的,尽管一些专业性的学校或者综合大学可以提供,但是也需要一些别的途径来提供相关的人才。
尽管学历是比较重要的,但是公司经常把重点放在应聘者的工作经验上,很多刚从大学毕业的大学生虽然有引人注目的学位证书,但是他们找不到工作是因为他们缺乏经验。
一个程序员虽然没有正规的学历,但是如果一个人拥有程序设计的深厚知识背景或者丰富的工作经验的话,那么他的机会要比有学历的应届毕业生大得多。
对于职业程序员,另外一个重要的方面就是,程序员需要不断提升自己的业务技术,他的技术必须一直保持在一个较高的水平,并且要不断发展,程序员也要寻找贸易的机会,要参加研讨会,在周刊上发表文章和接受职业教育,这些使程序员在自己的领域中分级或者不断并排前进。
3. 程序员是干什么的啊
程序员是写程序的属于电脑IT行业。
程序员(英文Programmer)是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员。
软件从业人员分为初级程序员、高级程序员、系统分析员,系统架构师,测试工程师五大类。
一年可报考软考程序员考试两次,但一次考试只能报考一种资格,因此报考了程序员考试则无法再报考软考其他级别或科目的考试。
同时软考程序员考试采用笔试形式,考试实行全国统一大纲、统一试题、统一时间、统一标准、统一证书的考试方式。
4. 程序员一般的工作都是干什么的
程序员的工作内容如下:
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态进行分析研究。
(4)看懂程序员扩展阅读:
数据显示,近四成程序员处于单身状态,明显高于非互联网从业者24%的比例。广州、深圳、北京成为单身比例最高的三大城市。单身的程序员在择偶方面也有区别于其他人的偏好,更注重对象的颜值、身材和家庭背景。
统计显示,互联网从业人员对买房有不小热情。互联网从业人员更勇于背负房贷,29%互联网从业人员正背负房贷,这一比例两倍于非互联网从业人员。其中在各大城市排名中,杭州、北京、广州位列前三大互联网从业者背负房贷人数比例最高的城市。
在互联网企业的一个特色是,没有明确的上班时间和下班时间,灵活的工作时间和高强度的工作量,使得加班成了行业特色。在睡眠时间方面,程序员的睡眠时间集中在11点至凌晨1点之间,而非互联网从业人员的睡眠高峰在10点至12点之间。
5. 程序员是什么职业什么职务
程序员(英文Programmer)是从事程序开发、程序维护的专业人员。
一般将程序员分为程序设计人员和程序编码人员。
软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类。
职务:
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态进行分析研究。
程序员职业要求:
1、熟练开发工具
作为程序员,掌握至少两个或三个开发工具是程序员的基础。其中,C/C++和Java是最推荐的开发工具。C/C++已经成为开发工具高效、灵活的锐利工具。
许多系统级软件都是用C/C++编写的。Java的跨平台与Web的良好结合是Java的优势,Java相关技术JavaOne很可能成为未来主流的开发工具之一。
其次,最好掌握一个简单的可视化开发工具,如vb、powerbuilder、delphi、cbuilder,这样可以降低开发难度,强化程序员对象模型的概念。另外,您需要掌握基本的脚本语言,如shell、perl等,至少能理解脚本代码。
2、熟知数据库
很多应用都是以数据为中心的数据库,有很多数据库产品,其中关系数据库仍然是主流形式,所以程序员至少要精通一两个数据库,非常清楚关系数据库的关键元素,熟练掌握在SQL的基本语法中。
虽然许多数据库产品提供可视化的数据库管理工具,SQL是数据库操作的基础和常用方法。如果您没有访问商业数据库系统的权限,那么最好使用免费的数据库产品,如mysql、postgres等。
3、了解操作系统
目前,主流操作系统是windows、linux/unix,熟练使用这些操作系统是必要的,但只有这些还远远不够。
作为一个真正的编程大师,我们需要对操作系统及其内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等有深入的了解。
Linux作为开发源代码的操作系统,是一个很好的学习平台。Linux几乎具有现代操作系统的所有特征。虽然关于Windows系统内核实现机制的信息很少,但是通过Internet仍然可以获得很多信息。了解网络协议TCP/IP。
6. 要做程序员需要学会什么
其实简单来说,程序员的工作就是使用编程语言,根据需求写出一个程序。
但是,在这个过程中,涉及如下几个方面:
使用的编程语言 程序员需要选择一门或者多门语言来编程,不同的语言适合编写不同的程序,目前主流编程语言包括,Java、JavaScript、Python、C++、php以及其他小语种等等,每种编程语言适合开发的程序有所不同。目前从程序应用分来,主要可以分为三类a 企业应用,主要用于解决企业业务。各种企业管理后台系统,银行系统,公安系统,图书管理系统等等。
b 互联网应用,面向互联网用户,为互联网用户提供各类服务。比如现在的京东淘宝各类电商系统等。
c 移动应用,各类在移动端使用的APP,有面向互联网用户的APP,也有面向企业内部的APP。
目前相对而言,在移动应用和互联网应用方面,资本投入比较热的风口,程序员的薪资较高。企业应用,发展了很多年,相对平稳。
2. 明白需求,实现需求
需求就是编写程序的要求。一个程序要编写成什么样子,具备哪些功能,都是由需求来具体说明。程序员要需要能看懂需求文档,并且能准确地使用编程语言,根据需求中的要求来编写成程序。企业开发的项目,往往会由该程序的架构师提供一个程序框架,程序员在该框架的规范下进行编程,实现需求的功能,以确保程序的规范、可读,以及可维护性。
3. 日常工作写程序
一个软件开发一般流程是产品经理根据用户需求做一个项目出来,然后UI设计师做一些图片设计,前端开发编写页面,后台开发编写核心编程,然后介入一些大数据和人工智能,通过测试之类上线实施,后期还有运维进行相关维护。
程序员一般大多指的是前端和后台写代码程序的开发人员,除了编写代码,可能还需要通过接口和其它系统对接,实现系统间的数据交换。像单体测试,是程序员对自己写好的程序单元进行测试,检测这个程序单元数据输入和数据输出是否符合预期等等。测试出来的问题,需要修改正确,然后再测试,直至没有问题。和同事共同开发的时候也需要联合测试,以及用户测试过后如果存在BUG继续进行修改。
7. 请问作为程序员,你们能看懂别的程序员写的代码吗
大部分情况下是看得懂的,当然一些没有注释的那些就需要通过调试步骤一步一步研究~是比较麻烦,所以要养成好的习惯,重点地方要注释下才行,避免后期维护起来麻烦
8. 程序员是做什么的
简单来看,程序员的工作就是使用编程语言,根据需求写出一个程序。
目前主流编程语言包括,Java、JavaScript、Python、C、C#、C++、php、Objective-C等,每种编程语言适合开发的程序有所不同。
程序员要需要能看懂需求文档,并且能准确的使用编程语言,根据需求中的要求来编写成程序。程序员编程时,一般不会直接给一篇需求文档,然后就要求编写出程序。
程序员写程序的一般过程包括,编码(就是写程序)->单体测试->集成测试->用户测试->系统上线->系统运维。
9. 专业程序员7大特质
成为一个专业人士是所有程序员的目标。在硅谷待了将近3年,在这里近距离观察了Google,Facebook,
Uber等公司的大拿,并有幸与其中的一部分一起工作。在此分享大牛程序员的行为风格以及我自己的所思所想,希望对大家有所帮助。
承担责任
这是专业和不专业的分水岭。对于一般的程序员来说,他的责任就是及时、高质量的完成任务;对于TechLead
来说,其责任就是统领全组,合理安排任务,让组员各司其职。这里包括3点:
承担合适的责任。选择自己能力范围内、自己喜欢做的。一旦选择了工作,请承担完成的责任;
学会说不。经常看到,产品经理或者领导会催促在极短的时间内完成任务,而程序员这个时候总是欲拒还休,说我来试试吧。专业的程序员对于任务有靠谱的预判和掌控力。当完成不了的时候,一定要说不。否则既是对自己不负责任,也是对他人不负责任。
应对最坏的情况。程序员最悲催的莫过于搞不定任务,这个时候一定不要推卸责任。这时候最重要的是给出一个切实可行的补救方案,最好有一个完成任务的时间点。老板不在乎你为什么完不成,在乎的是究竟怎样能完成。
高质量的代码
没有Bug,每一段代码都要有相应测试。很多人不写测试,那是因为他们抱着侥幸心理觉得自己代码没问题,同时写测试又很浪费时间。实际上保证代码质量的第一要素就是测试,测试可以让你检测不同输入所产生的输出,有时候甚至可以推动你去修改开发代码以提高质量。
可读性要高。刚学计算机的同学,变量随性命名,整个文档看不到注释。笔者认为,所有public的类、结构体、枚举、变量、方法都需要注释,因为
public是外部可见的,极有可能是常见的API,这时候让别人看懂就十分重要。
可扩展性和解耦性。最好的代码不仅针对当前特殊的情况,还可以应对其他情况;以后即使对现有的代码进行大量修改,也不应该影响其他模块。
代码上的时间
一个专业的程序员一周的花在计算机上的时间应该为每周60小时。最基本的40小时,要花在工作中。剩下的20小时,要花在提高自己身上。提高可以是多种多样的:读博客、做项目、看文档、上公开课。
有人说没时间,我们来算一笔账。一周有168个小时,假设你一天睡8小时,吃喝拉撒2小时,这样你还剩168-(8+2)x7=
98小时。然后你花在代码上60个小时,你还剩98-60=
38小时。你完全可以用20个小时陪伴家人(我知道很多人没有成家),再用10个小时与朋友聚会出游,就算这样,你也还有8个小时可以自由支配。
之所以要在代码上花费这么长时间,是因为软件这一行这一行变化太快了:乔布斯逝世才5年,Google已经声称移动时代已经过去,现在是人工智能时代;Objective-C还没火几年,转眼Swift已经出到了第3个版本;Html
5刚刚落寞,Facebook又推出了ReactNative试图整合android和iOS两个平台。。。技术的进步,总是让程序员有太多的东西要去学习。
对自己领域的精通
无论是前端、后端、还是移动端,都有自己的一套架构体系。作为一名专业的程序员,我觉得应该至少对自己领域所有的知识都有涉猎了解;对于核心的部分,则要做到烂熟于心的程度。
北大青鸟安卓培训(android.te.cn)专家提示有一类文章《再不学XXX你就Out了》。这类文章一般都是说新技术又新又酷,鼓励大家快来学啊。学习新技术的原因永远不是因为它新、它潮,而是因为它可以更好的解决当前问题。对于深度和广度两个维度谁先谁后的问题,我个人永远支持深度优先。只有本专业弄通的情况下,才能融会贯通。Andrew
Ng出名是因为他在MachineLearning的专长;提到John
Carmack,大家都会想到游戏编程狂人;谈起乔布斯,大家都绕不开iPhone。专业程序员能做普通程序员不能做的,这才叫专业。
思维模式
很多程序员平常写代码只在乎能快速解决问题,不在乎选择解决问题的方法和原因,这是典型的不知其所以然。专业的程序员,理应对每一个问题、每一步设计都有自己的理解。
举个iOS开发中的例子。假如遇到一个新App,你发现整个App运用了大量的RxSwift技术。你就要想为什么用RxSwift?
是方便测试?是整合逻辑?还是为了解耦架构?再进一步思考,为什么这个iOSApp用的是RxSwift
而不用ReactiveCocoa?是为了和Android端用RxJava保持一致的代码风格吗?
也许上面的问题和你工作需要解决的具体问题毫无关系,但是理解清楚个中要害却是提升内功的关键所在。
沟通
很多程序员只想写代码,做个安安静静的美男子,这当然无可厚非。但是你真的确定,正在在做的东西是老板希望、客户期待的吗?作为一名程序员,理解自己应该做什么、达到什么效果、同时让老板知道什么能够实现、什么实现不了,才是专业的表现。
举个Google中工作的实例:
部门经理:我们组A这个项目要赶紧干完,VP盯着我们。
程序员甲:好,那我赶紧做。
程序员乙:好。但能问一下这个项目为什么VP盯着?做了对整个组或者Google有什么好处?A项目的所有功能都要完成吗?有没有具体的截止日期?
上面我们可以看到,也许程序员甲和乙技术能力相同,但是甲更偏向于兢兢业业、努力干活的老黄牛程序员,他写出的代码很有可能是他认为非常好的代码;而乙则更擅长沟通,更有大局观的程序员,他写出的代码就更有可能被大家都认可。他们的专业程度高下立判。
合作
与组员的合作是专业程序员工作学习中重要的一环。除了沟通很重要以外,我想着重谈的一点,就是程序员在合作中不能掺杂着办公室政治。我所认识或者听说的硅谷的大牛,跟同事皆是坦诚相待,对后辈也是倾囊相授。
为什么会这样?因为首先,大家都理解了相关的知识,项目才能快速的推动,整体的工作效率才会提升;再者,自己懂知识,不代表自己能讲清楚它,随着与同事的交流和分享,知识本身会更加完善,对其理解也会更加全面扎实;最后,无私的分享和帮助有利于构建良好的工作环境和团队氛围。