A. 做一个程序员有哪些优势
最大的优点就是自由,一个星期5天工作日,有休息,但是职业病特别多。
B. 当程序员的好处有哪些
1、一言不合就写个东西帮自己干重复工作,让机器替你干一些枯燥乏味的工作(比如每天签到打卡什么的)
2、在中国如果单看工资收入, IT 绝对是排在前几位的行业。IT 行业相对其他传统行业来说,工资还是处于较高的水平,所以做这一行肯定可以过上衣食无忧的生活。
3、可以用不寻常的方式追妹子,只需要几行代码就能实现很炫酷的效果(比如写个小心心)~
4、不容易得老年痴呆,因为脑子长期高强度运行,大脑得到大量充分的锻炼,患老年痴呆的概率可以大大下降。
C. 程序员薪资确实很高,但为何很少见他们炫富
这世界上高薪收入的职业有很多,并不仅仅是程序员。但是并不是每一个有钱人都需要拿出来炫耀一下,只有极少数人才会有那种想要炫耀的心理,所以说程序员不炫富,这是一件非常正常的事情,可能人家也不想让大家知道自己非常有钱吧,毕竟低调是中国人的性格嘛。
最后就是因为程序员每天的生活节奏真的非常的快。他们只关心自己的工作做完了没有这个项目顺利不顺利,根本就不会关心到其他的事情。而且程序员每天最重要的任务就是要埋头苦干,所以这样的工作性质也决定了他的性格是不会太张扬的。
D. 如何成为优秀的程序员
保持健康
编程之外的爱好
持续学习
正确应对犯错
不要囿于角色
展示你的创意
刻意练习手速
首先要说的当然是健康,脱离了这个本钱,一切都无从谈起。
久坐、不运动、睡眠不足、不注意及时补充水分、长期的伏案工作等都会对健康造成很大的影响。
研究表明,长期保持同一姿势(不论坐着还是站着)对身体都有不同程度的害处。这几年很流行的“站立式办公”也是一样,如果你白天站立时间过久,会对膝关节造成较大的压力,同样会损害健康。比较推荐的方式是,写30-40分钟代码就起来走一走,喝杯水,远眺一会,跟同事聊聊天。
我知道,作为程序员我也常遇到那种写代码写High了连厕所也不想去的时候。不过为了长远的健康,还是要养成良好的习惯。
戒除不良习惯
除了长时间保持同一姿势之外,许多程序员还有各种不良习惯。比如:
吸烟
喝酒
嗜糖(碳酸饮料,其他高糖饮料)
一些建议
有规律的做一些运动可以缓解颈椎、腰椎的不适,可以加快新陈代谢的速度,消耗多余的、会沉积下来的能量。比如比较容易接触到、也容易上手的运动:
瑜伽/普拉提
乒乓球
跳绳
培养一个编程之外的爱好
如果让不同的人对程序员打标签并排序,宅一定会排在前三。在任何的聚会上,程序员总是很容易被识别出来的:聪明、戴眼镜、话不多、略显闷骚、聊天容易冷场等等。也难怪,长期钻研技术,沉浸在非黑即白的二进制世界,爱刨根问底,这样很容易把天聊死。
我建议新手程序员可以找一个编程之外的爱好,一来可以拓展自己的社交圈,周末可以有个不一样的过法(而不是宅在家里写代码);二来可以帮助你成为更好的程序员。
一些建议
学习一项与编程无关的技能,比如:
乐器(如吉他,架子鼓)
绘画(素描,水粉,水彩等)或者书法
制作美食
某一项武术(拳击,泰拳,空手道等)
这些看似毫不相干的爱好可以帮助大脑休息。另外需要注意的是,你无需真正成为某一项爱好的专家,不要有额外的压力:担心演奏不好、没有绘画天赋等等。没关系,它只是一个爱好而已。
持续学习
软件开发是一个需要终身学习的行业(其实如果你不想做那种混吃等死的人的话,基本上每个行业都是这样)。
程序员被裹挟在技术演进的洪流中,不能自已。作为程序员,你不但要非常扎实的掌握基础知识(操作系统原理,计算机网络,数据结构,算法等),还需要有非常强的快速学习能力,以及愿意不断去学习的态度,而后者可能更重要。
读书
通过视频/文本教程等学习新技术
建议新手每天抽出一个小时来读书,周末可以多读一些。ThoughtWorks有个读书雷达,是一个很不错的书单,包括了很多的经典书籍。读书之外,还可以在线学习一些教程,比如Tutorialplus和Egghead等,都非常值得经常去看看,如果有比较新鲜有趣的技术,不妨自己亲自动手试一试。
正确应对犯错
斯坦福大学的Carol Dweck教授通过一些实验和后续的研究提出了很有名的心智模型(Mindset)理论,简而言之,她发现不同的人们对待失败这件事有着完全不同的态度:有一类人害怕失败,失败后会变得不能接受,而且容易否定自身并影响进一步的尝试,Dweck教授称这类人为固定型思维模式(Fixed Mindset);而另一类人则“喜欢”失败,视失败/犯错为学习的一种方式,他们更关注过程而不是结果,Dweck教授称其为成长型思维模式(Growth Mindset)。
Dweck在演讲中提到,通过向成长型思维模式的转变,关注从失败/犯错中学习,人们的潜力可以得到很好的发挥,也更容易获得理想的结果。
很多新人不敢尝试,又不愿意让同事知道自己的不足,这样的态度会导致他更倾向于选择更容易的工作,这样就可以避免暴露自己的不足,久而久之就会形成恶性循环。其实企业对于新人的期望一般都不会很高,对于新人犯错也是有容忍度的,新人要勇于承认自己的不足,勇于尝试新的事物,勇于犯错并从中学习。
承认自己的不足在刚开始是一件很困难的事情,不过在尝试过几次之后,你就会发现其实也没有那么恐怖。你慢慢会喜欢那种不带任何包袱的、全身心聚焦在学习本身上的快乐。
不要被角色限制
作为程序员,既可以往上游去探索需求的梳理,用户痛点的分析,业务价值的挖掘,又可以向下游如测试的编写,产品的发布,运维监控。视野开拓了,才有可能对产品有整体的了解,也更容易在程序员这个角色上做的更好。
作为新人,能在自己擅长的方面发挥长处当然很好,但是如果仅仅局限在自己擅长的方面则未免太过单薄。如果你在前端非常有经验,那么除了将这些经验和知识分享给别人之外,你还可以向别的角色学习他们擅长的技能,比如向测试学习自动化、SBE等;向后端学习高性能,高可用服务器的技术、数据库设计及优化、API设计等;向DevOps学习运维技能,自动化provision技能等等。
这些不同的技术不但可以让你的视野更加开阔,也可以为自己以后尝试不同的角色和机会打好基础。
展示你的创意
将一个创意、复杂概念或者想法简洁而准确的描述出来是一个非常重要的能力。我见过太多的程序员都是沉默寡言,讲东西声音又小,又紧张,即使有很好的想法也难以完整的表述出来。
不过这个能力是可以锻炼的,只需要借助原型的制作就可以了:
画图
静态原型
纸上原型
俗话说,一图胜千言。你只需要学习一些简单的绘画技巧就可以大大提高自己的表述能力。
通过用静态页面(HTML/CSS/JS),mock数据等方式,快速的将创意表达出来是程序员的一个优势,你可以用静态数据、数据文件等方式,通过一些简单的代码快速的作出可以做交互的原型,然后通过和用户不断确认的方式来渐进增强,这种做法可以避免太大的浪费,尽早的将客户价值交付。
原型并不局限在草图,可以工作的静态页面,还可以是一个清晰简洁的演讲。基于PPT的原型还可以用来分析目前产品痛点、对比方案的优劣、展示自己的看法等等。
手速
关于程序员是否要求很快的手速是一个颇具争议的话题。支持者认为这属于基本功,每个程序员都应该打字都很快;反对者则认为程序员的价值在于思考并解决问题,追求速度快,那还不如招个打字员。我个人的观点是,好的程序员应该有很快的手速(包括打字的速度,但不局限于此)。
对同一个页面的不断练习听起来是在做重复工作,其实可以联系到很多的内容:
命令行的熟悉程度
快捷键的使用
搜索引擎的使用
Stackoverflow的使用
当你真的可以熟极而流的时候,你才有时间来考虑如何优化,比如如何抽取模板工程(这样下次做同样的事情就会快很多),如何精简DOM结构,如何用命令行工具来帮助自己提速等。手速是大前提,没有速度,一切优化都是脑海中的意淫,无法真实落地。
总结
要成为一个厉害的程序员,首先当然是要有一个好的身体。此外需要培养一个编程之外的爱好,这样可以让你活的像一个正常人(而不是传统的工科书呆子)。程序员是一个需要不断学习,不断充实的职业,在学习的过程中,英文能力可以帮助你学的更快,更有效,另外正确的应对学习过程中必然会犯的错误,并将每次错误都当成学习的机会。
E. 为什么程序员觉得写算法会有优越感
程序员应该感到优越。
事实上,很多人忽略了这个事实。事实上,IT互联网行业,即程序员、产品经理、操作、UI设计等行业,都需要依靠程序员。没有设计师,程序员可以自己做,没有产品经理,程序员自己也不重要,但是效率降低了,产品就不那么完美了。但是如果你仔细想想,如果我们没有一个程序员,其他的事情我们就无法做到。
任何职业都值得尊重, 当然,如果一个程序员整天认为自己能够写一些代码,设计一些程序,自己洋洋得意,觉得自己很优越,这种优越感也是很可笑的,沉醉于自己的特定的技能会极大地阻碍一个人的发展。
F. 相对于其他职业来说。程序员那些方面比较占优势嘞
当程序员好处多多
1. 相对较高的薪资
优秀的程序员一般薪资都不低,这点毋庸置疑,有的甚至超出你的想象。这点我们就不阐述了。
2. 公平的竞争环境
这里的公平指,不论你长相如何,背景怎样,后台硬不硬,你的技术态度决定了一切。只要你有能力,就不用太过于担心自己在这个行业的前途。
别人要用几个小时的解决的问题,你半个小时就定位到问题并解决问题,这就是能力。别人开发一个功能要一周的时间,你用两天就完成了,这就是能力。
3. 常保持新鲜感
每天都是新的开始。作为一名程序员,每天都在接触新事物,可以说是一种享受。程序员的工作并非一成不变,而是变化多端,如果你喜欢挑战,程序员岗位这将是你一个不错的抉择。可以让我们保持学习的心态。
4、不愁没有对象
面向对象编程,没有对象我们可以new 一个,想实例化多少个对象就有多少个对象。
不过,我们这里要讨论的对象是真的对象。程序员虽然不是修电脑的,但电脑系统要是出现什么故障,我们也能解决,这样就有更多的机会和漂亮的妹子搭讪了。聪明的程序员,要是对某个测试妹子感兴趣,稍微留几个小小的bug就能有更多的机会和妹子互动了,再不行,bug没法复现,还能见到妹子本人。
5、工作中,能力得到不断提升
能力不仅是技术能力,还有其他的学习能力,时间管理能力 思考能力。程序员更擅长思考能力,相对更加有独自思考的能力。能当程序员,数学一般都不差,英语水平也不赖。
6、成就感
当你犯愁某个功能怎么实现亦或是某个bug迟迟没有定位到问题时,突然灵感一来,问题就解决了,心情甭提有多开心。
G. 程序员的工资为什么那么高
每个行业的工资是市场决定的。得分析需求与供给。
---
供给:
程序员并不多。据说中国也只有200万会写程序的人(占人口0.14%)。相当少。
另外,印度270万程序员(最多的),也只占人口0.2%的样子。
我们先从西方国家的角度出发吧。虽然和中国印度不一样,但也有很大的参考价值。
美国的Tech行业(包括IT在内)工作人员达到700万;占人口的2%以上。
英国类似,160万员工,也占到2.4%。其它西欧国家应该都是差不多的比例。
不过拿整个行业来对比不恰当。因为高科技行业其中只有一小部分人是搞程序的。美国专业从事软件程序的人口呢,好像只有102万(根据2010年的人口普查);0.3%。
另外,在美国的职业排行中,程序员在所有职业当中人口数量排行第三十,还少于:
律师职业,104万;金融资产管理,110万;大学老师,130万
如果觉得金融和律师工资高很合理,那程序员工资高也是合理的。
话说,软件行业还详细分类,分各种语言各种平台各种特殊要求。编程语言的话;熟悉Java到专业程度的程序员只有其中30%。Python估计20%。C不到10%。像Golang之类的小众语言,1%都没有。(或许可以参考一下github上的用户数据)。
我们假设伦敦只有0.3%的人是写程序到专业程度的,那就是四万人左右。如果伦敦一家公司必须招Golang经验的人,能选择的程序员可能只有三四百人的范围了。如果再要求人家Python和Golang都会,那可能少到只有50个人选是合适的。随便看看一家科技公司的招聘要求,都会有好几个乱七八糟的,比如这语言那语言、什么SQL啊、Linux啊、机器学习啊、云端计算啊。。。每家公司要求也都不一样。真能完全符合他们所有要求的人可能只有几个甚至根本不存在。能找到满足两三个要求的人已经算很不错了。
其它行业没这么麻烦,一个职位总是有很多人都能胜任的。选择多了,公司就有条件把工资压低之类的。但是在程序招聘方面,谈工资的权利在程序员手里,因为对方没有选择。程序员本来那么稀有,非常适合要求的程序员更是稀有之稀有,不能错过。
(在简历上写什么都会的人一抓一大把;但是人家公司也不傻,能看穿。这些东西到精通的地步都需要好几年的经验。如果某个程序员真能够精通了其中两三件,又正好符合公司所要的,那价值无上限啊。稀有度决定一切)
(也有不一样的,一些高科技大公司比如google、facebook,他们不一定要求人家具体会做些什么,因为反正什么类型都会招收一些,而且有耐心培养。但是人家找的基本是高能力的人,强调problem-solving能力、逻辑清晰、抽象思维、创新思维、有直觉的、等等。达到这种境界,会什么不会什么都不重要,反正都能很快学会新技能。但是一般公司没这耐心,没这远见,只想尽快找一位能马上解决特定问题的员工)
(当然也不能说一个程序员的价值取决于他熟悉多少种计算机语言什么的。请别这样理解。许多程序员“高阶技能”更是一种训练出来的思考维度,和编程语言无关。这些维度决定一个人能否有效解决某一类问题。具体用什么语言并不重要。不过吧,如果只接触一门编程语言,思维肯定会有些捆绑)
---
需求:
好吧,伦敦有那么几万个程序员。假设平均两年换一份工作。如果市场稳定了(满了),那每个月新空出来的职位应该只有几千个吧?但是伦敦的招聘广告明明每个月都十几万个啊。而且一年一年越发多。这只能说明:找不到人了!
很多公司都是招不到程序员的状态。有些公司一开始很天真,挂一个他们自认为很好招到人的低职位广告,准备四万英镑年资(30多万人民币)。结果时间过去了几个月,发现过来面试的偶尔几个选手也都不适合,只好把年资提升到六万、八万、十万。最后终于来了一位程序大牛,非常适合,但是人家被另一个给出15万镑年资的公司给抢了。结果挂了一年多还在等人;老板的美梦都这样被现实毁灭掉了。
(在伦敦四五万镑年资的程序员当然也有不少,因为这些人总能找到一个能接受他们的公司。要么公司等得太不耐烦了只能选他们,要么成功装逼就混进去了。也或许是真找到了最适合的一家了。。。可是意识不到自己的稀有程度,低估自己的价值,有点可惜。有些人大概工作了几年才会有这种意识吧,然后追求的工资开始飞速涨价。)
总体来说,伦敦(以及西方各地)的程序员工资很高是有道理的。因为需求高于供给高得太多太多了。其它行业都是公司来选员工。但是这行业还真是员工来选公司。这也可能导致各种不公平吧。许多员工在五十万年资(人民币)的范围混,也有许多员工在百万以上(因为他们找到了自己稀有之处,并且运用了)。反正平均可能在八十万左右(比伦敦的平均薪资高一倍),但是很少有人的收入在这个平均值,一般是在两个极端。
中国是否处于类似的情况,好像是的。道理应该也很相似。如果你在找一千万人,但是只有几百万人能做到,肯定也会这样。而且其中每一个职位大概只有10-100人能做得好;做得到底好不好又很容易判断出来,薪资差距自然很明显。
---
程序员收入比其它职业高是事实。而且一点都不虚。
世界需要很多人来干这些事,能干的人又太少了。
这些程序员只要有几年经验在几家公司,累积掌握到了独特(仅限于自己)的一套技能,总能找到高薪的有价值的工作。因为他们是稀有动物啊。只要有一家公司正好非常需要那一套独特的技能,稀有程度已经很明显了。问题是不止一家认为他们稀有,所以各种抢破头。因此稀有的高级程序猿可以挑来挑去。公司竞争抢程序员而不是程序员竞争入公司。
---
最后讲几句关于未来:
首先,在所有职业当中,程序员是增长得最快的。大家应该都能看得出来。很多传统工作类型已经渐渐被取代了。正是因为程序员把这些工作内容自动化了。这个趋势肯定会继续下去。
最简单的一例应该是收银员工作。以前需要好几十个员工来负责收银的超市,现在只需要一两个收银员。超市里各种越来越先进的自动收银机器。至少在英国大多超市是这样的吧。整个人工收银行业在未来可能就不存在了。哦,还有金融行业现在几乎所有交易都是自动程序操作的。
其实大多行业,迟早都会有类似的淘汰现象发生。目前,大家不会想到有一天医生会被软件取代。可是仔细想一想,一个软件能分享和同步全世界所有的医疗数据来做一次诊断,远胜一个人的脑力所能做到的。律师分析历年来的案例和档案去找出漏洞的能力也可能不如一个软件程序。其他行业我就不一一说了,以后值得另外好好写一写。
这些变化会远远超过几次工业革命的变化。软件行业是唯一能坚持得比较长久的。这些其它行业被自动化软件化也都需要这些程序员来实现和维持。但是未来几十年内,需求只会越来越大。与其它行业的工资差距也会越来越极端。
感觉很多非行业的人有一种错觉。。。
错认为编程(或Tech)就是很多行业当中的其中一个而已。
我只能呵呵。
几百年前的人也会认为“工业”只不过是一个小行业,因为人不多。随着科技的发展,工人成了主流,这“工业”开始分成各种各样划分开来的新行业。后来服务业(白领)又突然发展起来了,分裂成现在大家所熟悉的各种行业。
下一次工作变革就是编程。它会慢慢形成很多独立行业。现在已经能看得出来啊,软件行业里面已经有很多不同方向的。。。我干不了A,A干不了B,B干不了C,C又干不了我所做的。但是我们都是“程序员”。在以后,我们就不会再说“他是程序员”,而说“他是A”,“他是B”。因为到以后大多数人都是程序员。一百年以后,“程序员”这个词就毫无意义了。
(当然也不是永久的;AI之类的也总会取代程序员,最后让软件写软件。将来下下下一个paradigm是什么我们都猜不到吧,无法想象。那时可能都没有“工作”这般概念。但是程序员的崛起作为目前一个大的paradigm shift,这是能确定的哦,毕竟这才是一步一步走向AI必须经过的一段历史)
汉语中的软件与英语中的software。。。含义好像不太一致?我觉得任何程序员写的都可以叫做software,不一定仅限于公开给大众下载用、有界面的应用。比方说,那些自动化交易程序,或者一些公司给内部开发的特殊功能,或者谷歌背后的搜索引擎后端,或者一辆汽车一台照相机里面的系统。。。甚至一个drone,这些也都是软件吧??
作为一个收入(可能是)amazon程序员中top%10的程序员, 我来很简单的分析一下一般程序员的心态:
首先程序员对自己的财力是有比较清晰的认识的,是有点钱,但是跟公司这些经常遇到的中层高层一比。。。。基本是人家零头。跟更富裕的公司的程序员比也是心酸,看到论坛上有人又分享跳槽XXXX拿到了YYYYYYYYYY的package,自惭很穷,。正所谓人外有人,天外有天。程序员爱上网,自然对网上各种惊为天人的富二代的财力也有清晰的认识。
但是coding老子天下第一呀!↖(^ω^)↗ 你看这个设计,啧啧啧,除了我, 还有谁?!(#^.^#) 哪些VP,director还不是靠我把系统搭建的这么好,组里离了我那就要玩完!是的,程序员往往会在技术上“自视甚高”,越年轻的越这样,学了一个XXXX技术然后发现某资深程序员在这方面不熟悉,就会小欣喜的觉得自己比别人强。
所以在这种心态下,程序员为什么要炫富呢? 这就好比我在剑法上有一定的造诣,但是(自以为)内功天下第一,为什么不去秀内功而要去秀剑法呢?
所以你绝对看不到程序员在朋友圈分享这些:
今天去了新开的爱马仕店看了看,哎,没什么新东西,稍微能看上眼的我已经都有了。
哎,这个burberry新款风衣真漂亮,决定今年的生日礼物就是它了!
怎么说呢,我发现XXX家的化妆品更好更适合我呀!YYYY家的以后我都不用了,可惜之前买了很多,浪费了1个月零用钱。。。5555
觉得留学租房不是很方便,所以家里在美色岛(搜了的人会知道是富人区)买了套房子,有3层可以看到华盛顿湖哦(暗示湖景房), 欢迎大家来玩,国内的小伙伴来旅游包吃包住哦!
他们会分享的是:
今天去参加了XXX技术峰会,哎,没什么新东西,基本都是老生常谈,这个AAA宣传的厉害,其实只不过是BBB理论的一种新应用吧了,还是没有解决CCC的缺陷。(内心OS:所以你看我懂AAA,BBB和CCC哦,我很有知识很厉害吧,快表扬我!) ( ^ω^ )
哎,这个新的分布式数据库看起来挺不错的,最近正在学习,有兴趣的同学一起研究呀!(内心OS:你看这个我已经学会了哦, 你会嘛?快表扬我!)(⁎⁍̴̛ᴗ⁍̴̛⁎)
怎么说呢,这个XXX机器学习模型相对于YYY模型更好一些,因为#¥%#&¥...省略各种讨论和论文引用。(内心OS:我是机器学习的专家哟,快表扬我!)(≧∇≦)
我们组发明了一种新的超牛逼的算法/数据库/分布式计算框架/语言/库/服务/引擎, github上火了呀,欢迎大家使用,欢迎评价哦! (内心OS:我是站在技术最前沿的人,我好厉害的,快表扬我!)⁄(⁄ ⁄ ⁄ω⁄ ⁄ ⁄)⁄
结论:比起财力上的优越感,智商和知识上的(自以为是的)碾压和超越,技术实力的被认同,更能让程序员有快感。
他们就是这么一群在自己的小世界里偷偷的有着自己的小骄傲的人们,一群被PM夸奖一下“好厉害”,就会一边轻描淡写的回一句“没有啦~”,一边心里乐开花的帮PM加班一整天赶进度的人们,很可爱吧。
最后挂一个自己对“什么是编程”的体会的答案,努力写的比较浅显易懂(反正写的干货也不会有人去看 =( ・᷄ὢ・᷅ ) =),非程序员也可以看下哦,觉得对您有帮助的话,可否点个赞帮我实现拥有一个万赞答案的小心愿呢。先行谢过 。
H. 程序员的成就感来自哪里
程序员的成就感是来自于他发明出的程序。在。日常生活中起到了很大的作用,而且没有任何bug。受到了周边同事的夸奖。赞。他的成就感会发自内心的爆棚而出。
我觉得最大的成就感来自于自己作品的受到用户喜爱,我开发过两个用户过亿的程序
一个金山词霸,一个YY语音。
但是最有成就感的不是这两个,而是《金山游侠》,一个单机游戏修改器。因为这是我和另一个同学完全出于自己的兴趣和需求而开发的程序,入职金山之前就做出了原型,连名字都没有,被金山包装成正式产品去销售,才取名叫金山游侠。
这个产品正版只卖了几万套,销售额也就100多万,去掉开发、生产、销售等费用,可能还是亏损的。词霸才是盈利的,不过也不多,每年也就一两千万的销售额。
最近几年还有人在用游侠,居然还能在现在的Windows上运行,微软保持二进制兼容的能力和决心实在惊人,因为金山游侠自从3.0以后已经14年没继续开发维护了。
知乎上也有人问过
金山游侠为什么不出新版本了? - 知乎
金山游侠是两个程序员开发的,一个是我,但是我2004年离开金山,当然不能拿代码出来自己修改发布,因为版权属于金山。
另一位程序员虽然还在金山,但是他很忙,因为他在金山做CEO。