1. 搞IT程序员有前途吗
IT程序员有前途。就业方向有:
1、架构师
这职位听起来很高大上,但它需要强大的技术实力和深厚的技术积累。建筑师的成长需要经验、技术的广度和深度。设计优雅、灵活、扩展性强的架构是架构师的主要工作。
2、Java后端程序员
后端程序员主要实现业务逻辑,为前端使用提供接口。
Java是最常用,但也有其他相对小众,比如Python,Ruby on Rails、php等,还有就是PHP,小网站经常用,不论哪个语言,都不难学,这一块的需求是比较大的。
(1)对会程序员扩展阅读
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态进行分析研究。
2. 程序员这个行业会不会被淘汰
文章略长,没耐心的小伙伴可以直接跳到文末,三句话概括全文。
事情起因是这样的,有团队做了一款可以直接生成网页的手机APP发布了,某知友就慌乱了,觉得前端工程师会被AI所代替,开始纠结学习前端还是后端。
“手机APP可以直接生成网页,取代了前端工程师的一部分工作,随着APP的进一步开发使用,前端开发的行业空间将更加狭小,是不是就意味着,前端开发正在面临淘汰的局面?”
前端真的会被淘汰吗?
答案案是否定的。诚然,按照人类现在的发展趋势,未来所有工作都将被AI取代,但是计算机行业肯定也要在后期才会被取代,有限取代的必然是一些流水线上固定岗位的重复工作。
很多人会有这样的想法,有以下几个原因:
1、大部分人对于前端工程师的误解
一个转换网页的APP的出现就能引起这么多人的猜测和恐慌,足以说明很多人对于前端开发的认识和了解是不够清晰的。
真正的前端开发并不是傻瓜式的网页生成可以取代的,在这个前端开发快速发展的互联网时代,你还认为前端开发只是切网页的,那你就大错特错了。
来看一则招聘启事:
专业性的方面分析完了,我们再来看看侧面因素,为何一个看似门外汉提出的问题会有60万人响应呢?这让我陷入深思,行内都知道,2017年开始前端突然崛起,大批大批的IT人员或者非IT人员转行做前端,这60万人中,学艺不精者,心态浮躁者应该占了大部分,那就引出下面第二个观点。
2、行业内大批学艺不精者造成市场饱和假象
由于前端工程师的入门门槛较低,很多人认为HTML、CSS、JavaScript并不是很难掌握的语言,似乎只要花一点时间,无论是谁,都可以通过网上教程或者书本入门。
许多人怀着追求高薪的想法入行,其实也没什么错,但是无法安心学习,浅尝辄止,会一点皮毛便不再深入研究,所以即便有大量的前端工程师涌入,公司对于技术扎实的优秀工程师的需求仍然只增不减。
整个互联网在不断发展,前端开发技术也在不断进步,前端开发市场会越来越广泛,人才需求当然也不会止步于当前,所以不论现在还是未来,整体市场都不会饱和,只会低端饱和,高端缺人。未来优秀前端开发工程师将成为市场争抢的资源。而淘汰的并不是前端,应该是落后的技术和不合格的开发者。
10 年前的前端工程师熟悉所有 IE6 bug,只要你说得出表象,他就能告诉你这个 bug 叫什么名字、成因是什么、如何能够绕过去同时保持跟其它浏览器兼容。
10年后的现在,这样的技术是显然被淘汰了的。
3、前端开发技术日新月异,那么前端开发攻城狮的未来又在哪里呢?
随着前端技术发展,那些小规模移动App市场被一些巨头把持,小规模App生存空间将越来越小,PC信息导航类网站(网址、购物、论坛、生活)由于移动优先、智能推荐的现状,也同样面临更加狭小的生存空间。
还有一大变化是,大量工作需要前端来做:
日常办公软件(复杂应用,并且慢慢从桌面程序演化为Web):Office、Email、文档管理、产品设计、项目管理、代码编辑器大数据/AI配套软件(复杂应用,并且慢慢从桌面程序演化为Web):需要大量的后台系统来做数据分析/机器学习播放器/游戏:H5代替Flash,如Web
Audio、Web
Video、Canvas容器/DSL/内核/小程序:支付宝/微信/钉钉容器,内核(也就是UC、QQ浏览器内核),及其自定义DSL(如果将来手机的底层能力都可以上浮到小程序,很有想象空间)产品信息展示类网站(炫酷应用):各种智能设备官网、大企业官网。
文末小编总结一段话,概括所有问题。
前端开发近十年都不易被撼动或取代,重要程度逐年增长中,吸金能力亦然。从业者应该注重自身知识巩固和新知识的更新迭代。找准时代发展方向,努力钻研,勇于创新能让你走在时代最前头。
3. 程序员会被取代么
我个人认为,程序员是无法被替代的,AI应该是可以让程序员的工作变得简单,门槛变得越来越低。
但是,要想完全的替代,那是不太现实的。
原因:
程序员在研发这些应用程序,其实都是面向一个实际的业务场景的,这个业务场景可能有非常复杂的流程,可能一个简单的逻辑背后,是非常复杂的代码。
而将这些业务逻辑整理成为一个可以应用的方案,是产品的责任,将产品的业务设计、产品设计转化为代码并且最终形成一个可交互的应用程序,那就是程序员的工作了。
而看过很多程序员段子的人也应该听过,产品和程序员之间的矛盾,这都是需要人为的进行调和的地方,如果,现在程序员被机器所替代了,先不说产品的需求丢给机器人,机器人看不看得懂,我们就先假设机器人已经智能到可以阅读设计文档了。
如果一个机器人给产品经理说,不好意思,你这个需求无法实现。这个时候,机器也不大可能像人一样会联想很多业务逻辑,然后和产品经理沟通,可以就是简单的给一个答复,然后问你,你要的是不是这个?
4. 提到程序员,除了代码你还会想到什么
其实提到程序员吧,会想到什么呢,我觉得可能会想到代码,也有可能会想到电脑。也有可能会想到无聊,但是我可能下意识的就会想到那个猝死,原谅我这样想你们,对不起我也不想的。但是真的下意识的就会想到猝死,可能就是最近特别多的那个猝死的情况会发生吧,而且就是大部分都是你们程序员,我知道你们的生活特别的枯燥,你们那生活还可能就是很无聊。然后可能还是需要特别多的加班,然后饮食不规律啊什么的,不能按时睡觉啊,然后你们可能猝死的情况就比较多一点儿了,其实我真的是不想这样想你们的。但是真的下意识的就会想到这样子,还是希望以后能够改掉我的这个印象吧,希望你们以后就不要再有这样的情况发生,其实还是希望你们能够健健康康的啦!
提到程序员,我可能还会下意识的想到那种。戴个眼镜也不收拾自己,然后那种脸上可能有点青春痘的男生,原谅我真的没有在生活当中见过一个真正的程序员,所以我只能好以一些电视剧当中的形象,或者是网上的一些段子啊什么的,来猜测你们的样子,其实我可以的话我还是希望咱们国家,可以拍一个关于你们的电视剧或者是电影吧,因为我觉得可能你们的生活有点儿无聊,但是可能会向我们展示一下全面的样子吧,还有就是你们的工作和你们的生活是分开的那种感觉吧,我还是希望看到如果有一部这样的电视剧或者是电影出现的话,对比应该还蛮强烈的,我还蛮想看一部关于程序员的电视剧或是电影的。
最后我希望你们真的就是少熬夜,然后希望都能健健康康的吧!
5. 知乎会代码不做程序员对未来有什么好处
首先、SEO和程序员的培训费用、时间都相差很大。如果这个培训机构没差就别去了,肯定是不靠谱的。其次:SEO优化还是编程代码,看你对哪个感兴趣。SEO往上走可以学运营。编程代码也有很多不同,H5/IOS/JAVA等。前者靠脑子吃饭,后者靠技术吃饭。最后:薪资确实有差距。但最在于地域性。这个你可以在网上查自己想发展的地方两者的薪资对比。但前提请参考第一条。最后的最后,现在市场行业最火的是H5。H5学得好就没SEO啥事了。而且即使是SEO,也需要学的是运营。
6. 又不是程序员,会编程能给我带来什么好处
一、编程的思维是一种很有趣的思维,另外对于看待事物可以增加一种思维方式来思考。
二、有助于大致理解自己生活中见到的各种程序化产物的内部原理。比如网页打开时内部发生了什么,或者某款游戏里武器攻击如何实现伤害计算的。
三、某些编程方向对于理解某类操作会更加清晰。比如做Web开发的,在浏览网页时知道某些重要信息藏在当前网页源码里,所以可以根据重要信息查看。部分人甚至可以洞察网站漏洞, 并利用该漏洞攻击网站(遵纪守法,别轻易尝试)
四、学一些编程自己做点小玩意儿,既是一种学习,也可以作为一种应用。如果这些东西慢慢做大,说不定又是一笔财富。
五、鸡汤话:学无止境。
7. 程序员的工作和生活都是非常枯燥的,跟程序员交往会不会显得很乏味
程序员的工作和生活都是觉得非常的枯燥,想要和程序员交往的时候肯定会觉得有些乏味,彼此选择在一起交往的时候都是看到了对方的闪光点。虽然说生活会觉得有些乏味,但是也正是因为两个人性格有些互补,所以并不会觉得和程序员交往有些枯燥。在性格搭配上大多数都是呈现了互补的,如果程序员的生活较为枯燥,自己可以选择活泼一些,能够丰富对方的生活。
生活需要仪式感程序员也可以表现的十分浪漫,毕竟经常和电脑打交道,也可以查看到网上新鲜事件。所以在看到别人家的男朋友给女朋友制造惊喜的时候,程序员也可以通过电脑的方式给对方制作一个有爱意的程序,或者是独自研究出一款软件。能让彼此两个人共同使用,也能见证彼此爱情的发展,在谈恋爱的时候,生活也是需要仪式感的。
8. 要做程序员需要学会什么
其实简单来说,程序员的工作就是使用编程语言,根据需求写出一个程序。
但是,在这个过程中,涉及如下几个方面:
使用的编程语言 程序员需要选择一门或者多门语言来编程,不同的语言适合编写不同的程序,目前主流编程语言包括,Java、JavaScript、Python、C++、php以及其他小语种等等,每种编程语言适合开发的程序有所不同。目前从程序应用分来,主要可以分为三类a 企业应用,主要用于解决企业业务。各种企业管理后台系统,银行系统,公安系统,图书管理系统等等。
b 互联网应用,面向互联网用户,为互联网用户提供各类服务。比如现在的京东淘宝各类电商系统等。
c 移动应用,各类在移动端使用的APP,有面向互联网用户的APP,也有面向企业内部的APP。
目前相对而言,在移动应用和互联网应用方面,资本投入比较热的风口,程序员的薪资较高。企业应用,发展了很多年,相对平稳。
2. 明白需求,实现需求
需求就是编写程序的要求。一个程序要编写成什么样子,具备哪些功能,都是由需求来具体说明。程序员要需要能看懂需求文档,并且能准确地使用编程语言,根据需求中的要求来编写成程序。企业开发的项目,往往会由该程序的架构师提供一个程序框架,程序员在该框架的规范下进行编程,实现需求的功能,以确保程序的规范、可读,以及可维护性。
3. 日常工作写程序
一个软件开发一般流程是产品经理根据用户需求做一个项目出来,然后UI设计师做一些图片设计,前端开发编写页面,后台开发编写核心编程,然后介入一些大数据和人工智能,通过测试之类上线实施,后期还有运维进行相关维护。
程序员一般大多指的是前端和后台写代码程序的开发人员,除了编写代码,可能还需要通过接口和其它系统对接,实现系统间的数据交换。像单体测试,是程序员对自己写好的程序单元进行测试,检测这个程序单元数据输入和数据输出是否符合预期等等。测试出来的问题,需要修改正确,然后再测试,直至没有问题。和同事共同开发的时候也需要联合测试,以及用户测试过后如果存在BUG继续进行修改。
9. 当程序员有哪些危害和后果
对眼睛伤害大,长时间坐着对身体不好,不过现在都有升降桌子了,当程序员只有极少数像楼上说的那样,相反一名真正得程序员表情一点都不木讷,由于大脑不停的思考,所以会有一种程序员独特的气质,这种气质绝不是木讷,现在得程序员都怕死,所以健身是必不可少的,语言表达能力特别强,因为程序员的逻辑能力很强,工作的时候也需要和同时进行沟通,况且现在的公司越来越注重沟通成本,所以语言表达能力是绝对ok的,人际交往能力看你怎么理解吧,不同的程序员都有自己的圈子,可能他们的朋友是通过业余爱好认识的,可能是程序员或者程序媛,现在生活质量提高了,哪个人没有除了工作以外业余爱好?至于那些一新做程序员的,人家绝对不缺朋友,至于难找女朋友,这不仅仅是程序员吧,只能说情商低的人可能会过得不如意,这点再任何领域都适用,并不仅限于程序员,再来说说直男和生活邋遢还有加班,
我认识的程序员,只有极少数是生活邋遢,直男,还一直加班,真实情况是这样的,这种人有两种情况,一种是再生活上受了极大的打击,另一种是技术太差,又不肯继续学习,最后的结果就是被解雇
10. 程序员需要学些什么
程序员的岗位需求很多,例如大型网络公司、软件开发公司等等都需要程序员。
程序员需要学习:
1、掌握数据及其转换、数据的机内表示、算术和逻辑运算,以及相关的应用数学基础知识;
2、理解计算机的组成以及各主要部件的性能指标;
3、掌握操作系统、程序设计语言的基础知识;
4、熟练掌握计算机常用办公软件的基本操作方法;
5、熟练掌握基本数据结构和常用算法;
6、熟练掌握C程序设计语言,以及C++、Java、Visual Basic中的一种程序设计语言;
7、熟悉数据库、网络和多媒体的基础知识;
8、掌握软件工程的基础知识,了解软件过程基本知识、软件开发项目管理的常识;
9、了解常用信息技术标准、安全性,以及有关法律、法规的基本知识;
10、了解信息化、计算机应用的基础知识;
11、正确阅读和理解计算机领域的简单英文资料。
程序员必备技能:
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系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。懂得网络协议TCP/IP。
在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式。
从最早的客户/服务器结构,到今天的WEBServices,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,深入掌握TCP/IP协议是非常必要的。
至少,需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。
4、明白DCOM/CORBA/XML/WEBServices存在的意义
随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。
XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布式计算的基石之一。
5、不要将软件工程与CMM分开
大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员。
一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能。
如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。
6、需求理解能力
程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求。
要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
7、模块化思维能力
作为一个优秀的程序员,他的思想不能局限在当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。
这样做可以使代码能重复利用,减少重复的劳动,也能使系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
就业方向:
1、网络开发
现在网络已经成为世界通讯的一座桥梁,好像Javascript、PHP、Ruby这几类开发语言大部分是用作网络开发方面。
2、企业软件开发
JAVA、C#、VB这几类开发语言都实现了面向对象开发的目标,更多时候用于企业系统的开发。
3、系统软件
C语言、C++、Object-C这些软件更多是用在系统软件开发,嵌入式开发的方面。
当然,这分类不是绝对,像JAVA、C#、VB很多时候也用于动态网站的开发。在很开发项目都会使用集成开发的方式,同一个项目里面使用多种开发语言,各展所长,同步开发。
但所以在刚入门的时候,建议先为自己选择一种合适的开发工具,“专注地投入学习,全力一击”。
会编程、会计算机语言就能加入互联网发展大潮中,享受数字经济发展的红利,一时间社会上的程序员培训机构都变得格外火爆。
但是现在,专家的数据分析结果告诉你:若想跟上数字经济发展的步伐,光会编程可不行,这个行业现在紧缺高端的、综合型人才。
11月22日下午,清华大学经管学院互联网发展与治理研究中心与领英联合发布《中国经济的数字化转型:人才与就业》,揭示我国数字人才现状与趋势。
报告显示我国数字经济发展面临人才短缺的挑战,但这种短缺主要体现在拥有中高级专业技能数字人才的比例不高,拥有人工智能、智能制造等前沿技术的人才更是少之又少。
与美国、英国、加拿大等国家相比,中国的数字人才储备尚有很大差距。
此外,报告根据对人才需求的数据分析,结果显示我国数字人才的技能需求不再强调单一编程技能,更加看重技术、管理和领导力等综合技能。
2015年,我国从事信息传输、软件和信息技术服务相关工作的人数约350万,但其中中高端人才,特别是前沿技术的数字人才并不多。根据领英中国智库的研究,在人工智能领域,美国的从业者数量在85万人以上,印度15万,英国14万,中国只有5万多人。
报告负责人、清华大学经济管理学院副院长陈煜波教授表示,我国目前在大数据与人工智能领域人才缺口明显。
他解释说,目前中国85%以上的数字人才分布在产品研发类,而深度分析、先进制造、数字营销等职能的人才加起来只有不到5%,存在较大缺口,新兴技术人才和创新型人才培养方面存在滞后和不足。
这份研究报告的基础数据来自领英在中国的3600万个人用户,这些用户毕业于1.5万多所国内外院校,分布在36.4万家企业,拥有超过2.3万项技能。
陈煜波研究团队从中筛选了72万数字人才,多维度提取用户画像并跟踪其职业轨迹,以此预测不同地区的人才流向、雇佣率、受雇主欢迎的技能等人才趋势层面的信息。
陈煜波说,根据数据分析结果,整体来看,虽然编程技能和数据分析技能需求占据主导,然而随着数字产业走向成熟,企业除了强调编程技能,也逐步更加看重人才的技术、管理和领导力等综合技能。
近年间,项目管理、产品运营等“技术+管理”类技能的需求呈现出明显的上升趋势,懂技术、懂管理的人才被认为是“一将难求”。
领英中国代理总裁曾志恒也提醒,如果你有兴趣向数字职能转型,不能仅仅专注于自己的技术能力,沟通和领导力等软性技能将成为你脱颖而出的关键。
陈煜波希望这些研究结果能为教育行业和政府部门提供借鉴。他说,教育行业可根据职位的供需趋势更好地规划人才培养的方向,政府也可更好地了解人才流动方向、技术缺口等,以此制定有针对性的引才策略。
程序员岗位职责:
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态进行分析研究。
相关书籍:
很多程序员响应,他们在推荐时也写下自己的评语。 以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 9的书。
其实除了前9本之外,推荐数前30左右的书籍都算经典,笔者整理编译这个问答贴,同时摘译部分推荐人的评语。
下面就按照各本书的推荐数排列。
1、《代码大全》 史蒂夫·迈克康奈尔
2、《程序员修炼之道》
3、《计算机程序的构造和解释》
4、《算法导论》
5、《重构:改善既有代码的设计》
6、《设计模式》
7、《人月神话》
8、《计算机程序设计艺术》
9、《编译原理》(龙书)
10、《活着》