Ⅰ 程序员的出路(程序员是吃青春饭的)
进入一个行业,开始一份工作,不论在最初的时候,你是因为喜欢还是被动接受,或多或少的都会成为你一段时间内为之奋斗的事业。
边工作边迷茫也许是大多数人的常态,觉得这份工作不适合自己,可又不知道应该去做什么;喜欢着自己的工作,却又不知道怎么进一步提升,内心难免焦躁。尤其是随着年龄的增长,更希望能够在事业上有所发展。
有人说,程序员真的只能吃青春饭,企业在招聘时会在意程序员的年龄,大龄程序员一旦离职找工作就会变得艰难。面对年龄很多程序员都表示束手无策。
其实,程序员其实也和其他职业一样,干的越久技术越熟练,经验自然更丰富。如果你的年龄和你的薪资不相符,你就应该考虑是不是年龄上去了能力却没上去,你所求的薪资和你要求的岗位,要让企业觉得你值这个价,自然不会被淘汰。
如今程序员越来越多,应该怎样规划自己的职业道路呢?程序员的出路在哪呢?
一张图道尽程序猿们的出路:
对于程序员的工作出路,有以下几点建议:
20-27岁:技术积累阶段
假设本科22岁毕业,那么工作的前5年对你来说是打基础的阶段。在这5年时间里面,你要积累足够的代码量,打磨自己的技术实力,成为某一个技术细分领域的牛人。
28-35岁:形成思维方法论和知识体系的阶段。
当你积累足够的代码量,例如超过10万行代码以后,你应该形成了自己的思维方法论和自己独立的学习技巧,任何新的技术在你眼中都能迅速的看到技术的本质,快速吸收成为你的知识体系的一部分。
到了这个阶段,你会发现你所完全不了解的新技术新知识是非常少的,新技术对你来说也不过是几天时间就把玩的很好的玩具,学习越来越轻松,掌握的知识储备越来越多。
你开始逐渐的不再满足于纯技术领域的探索,而是思考更多的问题:如何将技术转化为生产力;什么技术在什么样的场合能够发挥最大的价值;技术团队应该怎样构建;在一家公司里面,我怎样才能将自己的技术能力最大化的发挥出来?
在这个阶段,积累技术对你来说简直是小菜一碟,你更需要磨练的是思考能力,形成自己的思维方法和知识体系,这将是你帮助你一生的武器。
35岁以后:了解自己,把自己变现的阶段。
毋须讳言的是,35岁以后你的一线coding能力一定是下降的,你写代码绝对不如25岁的程序员快,效率高。但是这不重要,因为编程只是你整个武器库当中相对最不重要的了,你的经验,你的视野,你的架构能力,你的管理能力,你分析和解决问题的能力已经远远不局限于技术这个领域。
资料来源网络,侵删
Ⅱ 求这张原图
原图是一个采访老大爷视频的截图,那什么28岁程序员是后期p上去的,有很多个版本,你网络搜一下“其实我觉得吧压力也没那么大”就知道了。
图片如下:
右键点击图片,选择"在新标签页中打开",可以查看大图,
若图片被屏蔽,请查看私信,
或则私信我并附上问题地址索要图片!
Ⅲ 程序员搞笑图片,就是一张图片,上面第一个是完成版,然后是完成版1,完成版2。。后面是定稿 最后是遗书
那是论文,不是程序员
Ⅳ 干了两年程序员了,不知道下面的路该怎么走了,请前辈们指点下好吗
我有几个做程序员的朋友,因为我是做职业规划的,之前有朋友也咨询过我类似的问题,答复如下:
1.首先,程序员是非常枯燥的工作,做了大概两年左右都会有倦怠期,这个时候应该问问自己,我还要不要继续做IT类工作。
2.若确认继续做此类工作,那么有两个选择,第一是继续钻研技术,平时多到网络平台找同行交流或学习。第二是转运维类工作,我有两个朋友就是由编程转到了运维。其实还有第三,可以走管理方向,不过这个需要自己多学习管理类技能,同事也要有这方面的兴趣。
作为一名从业多年的程序员,同时也是一名教育工作者,我来回答一下这个问题。
对于从业两年的程序员来说,正处在技术成长期,如果未来想在技术领域走得更远,此时应该注重开发经验的积累,同时应该广泛涉猎各种技术体系,尤其要注重各种新技术的学习,包括大数据、物联网、云计算、区块链、人工智能等技术体系。对于程序员来说,在从业的最初五年,一定要多做“加法”,更多的技术储备能够为岗位升级奠定一个扎实的基础。
对于专注于行业领域的应用级程序员来说,还应该重视行业经验的积累,在产业互联网时代,行业经验对于程序员未来的发展有非常重要的影响。对于大部分基础知识比较薄弱的程序员来说,如果不能在技术研发的道路上走得更远,就应该考虑未来的发展方向,如果具有丰富的行业经验,会在很大程度上拓展自身的选择空间。从当前行业发展趋势来看,程序员可以考虑向产品经理、项目经理、行业信息化专家等方向发展。
对于从业两年的初级程序员来说,如果条件允许的话,还可以考虑通过读研来提升自身的岗位级别,目前有不少初级程序员都会选择考研。按照 历史 经验来看,大部分程序员在考研之后都会获得岗位升级,不少人在读研之后会选择进入互联网大厂发展,薪资待遇也有了一定程度的提升。从这个角度来看,程序员读研也是一个不错的选择。
最后,随着产业互联网的发展,当前程序员应该注重云计算平台、物联网平台和人工智能平台相关技术的学习,未来这些平台将有广阔的发展空间。
两年也就相当于是刚入行的一个程度,那这个程度就是要多努力干活,多学多练,想任何其他的都是白费功夫,因为你没有其他的时间积累,在二至四年的这个时间里,要把自己的工资技术水平提升到你所在的那个城市圈子里面的中上等的水平,然后你要有一个比较谨慎的思维,不要空有一个想法。
那么这个时候你个思想和你这个能力就不匹配了。我们首先要选择考虑的就是北上广深。你现在还可以努力干到35岁左右。另外技术这个行业它分为一个是偏技术型,另外一个是业务驱动型,还有就是属于技术骨干性。偏技术型的话,不建议你选这个,因为不管是程序员也好,前端也好,都是工程师,都是干活的,不搞科研,虽然很多it公司技术部要求很多,但是都是干活的,没有说太深的一些技术要求,基本上就是用于日常的技术啊bug。
另外一个是业务驱动型,也叫业务,就是你要主导需求就是客户你能找到自己的客户,然后还要和前端一起去搞定这些问题,你要有老板的一个思维,自己干的时间长了,那么你就能找到自己的这个路了,不管是你创业还是说去其他的地方去做都对自己非常有好处。
你现在考虑的可能就是说以后怎么发展他这个技术程序员发展的话一般是年龄平均到35岁左右的时候,你就可以通过前期的一些积累,然后铺垫到35岁的时候,你就可以去做其他的行业的,因为你到35岁的时候,不管是去面试或者是带领团队熬夜,很多时候有些东西都跟不上了,所以建议你到那个时候去转行。
你好,作为一个工作4年的同学,我想以个人经历回答下这个问题。对于工作两年的程序员来说,大都是处于技术的快速上升期,应该也接触了挺多的技术面,包括但不限于分布式、数据库、网络、大数据等,并且可能对某个框架或者技术有了自己的深入见解。
对于以后的发展,如果是想往 中间件方向发展 的话,需要掌握分布式原理、网络通信、消息队列、数据库操作、缓存等,大多数中间件都涉及到分布式支持。可以看几个不同类型的中间件的原理与设计实现,比如MQ可以看Rockermq,数据库可以看MySQL,缓存可以看Redis,网络通信库可以看Netty,配置中心可以看Apollo等,注意,每种类型的中间件或者框架重点学习一个即可,因为思想都是相同的,理解了一个之后在学其他的很快就能上手掌握。当然,除了自己的技术学习之外,一个好的平台也是很重要的,不仅仅能够认识一帮志同道合的朋友,还能有实际的业务平台去实现技术的价值,这里推荐阿里的中间件相关岗位,目前中国中间件团队的java水平基本是阿里最高水平了,在这里诞生了很多知名的开源软件。
针对1-5年的程序员关于技术点来说,可以参考芋道源码整理的下面一张图进行查漏补缺:
上面罗列的技术目前我也在学习中,对于技术人来说,知道自己想要什么,要比自己知道怎么要什么更重要。知道自己想要什么,你就会想方设法去实现它。不管怎样,脚踏实地做好自己的工作,学习技术,肯定没错。
说实话我对程序这东西一窍不通,但我知道不管什么事情没有了程序那就乱了,电脑没有程序就死机了,人干事情没有了程序那就没有头绪,我觉得你还是好好干吧,这个行业永远淘汰不了。永远是最需要的东西!
说实话,只是普通的编程圈子不会很大,跳出这个圈子会发现还有很多其他相关的职业。如果在一个小公司,程序员工资虽然偏高,但在运营商务销售其他职务心里多少还是会有些轻视,毕竟现在普通程序员太多了,大部分人做的东西千篇一律,而他们认为工资其实是靠他们的能力赚取的。
如果想在小公司发展,可以深入了解业务,和一些其他职位的主力人员维护好关系,倒时候想创业可以合伙,想转行也会轻松些。
如果想在大公司发展,可以走管理,大公司一般比较看重资历,学历,管理能力。
还有一种走技术路线的,一般只存在于大公司,这种部门在有的公司很闲只是撑个场面,有的是真正能做出实用的东西值得敬佩。
做任何行业都要坚持,兄弟你才做了两年,相当于是刚入门,以后要走的路还会很远。
就现在来说,程序员还属于是高收入行业,工作还比较好找,趁年轻时好好干,多积累一些经验,多做一些大的项目,以后的路会越走越宽。
不太清楚你目前的困惑点在哪里,是学习新技术感觉力不从心了?还是对技术没有兴趣了?还是不想当程序员了?还是对程序员的发展路线迷茫了?不管怎样,干了两年的程序员,对编程这个工作还是有些经验了,也能够解决工作中的一些技术问题,但还处于相对初级的一个水平,毕竟积累不太够。
建议继续做2-3年开发工作,提升编程水平,提升解决问题的能力,逐渐成长为公司的技术骨干。等到那个时候,你的选择会相对多一些,也会理智一些。例如:你在开发过程中,觉得自己更喜欢跟人打交道,想做项目管理,那么,你多做2年开发工作,并不耽误你后面转为项目经理。你可以将接下来的2年作为一个潜伏期,在做好本质工作的同时,注意一定要做好你的工作,你的工作做好了,自然会得到别人的尊重,也会赢得人脉,千万不可以为将来不做开发了,就开始敷衍、不用心,做好当下,再考虑将来的发展方向,是换一个公司,换一个岗位,还是换一个城市?毕竟程序员的待遇还是可以的,多做2、3年,没啥损失。
在迷茫的时候,不要做任何决定,静观其变。
大家好!我是键盘手,
关于这个问题我想说一下我个人的看法,我个人也是吃技术饭的,现在过了三十五岁了,打工已经没有公司要了,也不想和大学生去抢饭碗,去工作人在心不在。以前二十几岁的时候,总认为吃技术饭经验很重要,年龄越大经历越丰富,薪资就越高,而现实是,现在的公司一般不招三十五岁以上的人员,而且有些公司把三十五年以上的员工解聘掉,主要是人过了三十五岁,思想和创新能力、学习能力没有二十几岁时候强,所以对于技术员来说就是一道坎,很多人到了这个岁数都不敢随意跳槽,也不敢创业。
所以我个人认为如果你不是很喜欢这个行业,就早点作出选择,当然越早越好,如果你喜欢,那就深造下去,见意在三十岁之前能够有所作为,不要再给别人打工,我过了三十五岁才明白,打工是最不划算的买卖。
就这个问题,我根本不了解你的任何情况,我能指点个毛线。再说我还不是前辈。
干了两年程序员了,没有说干的好还是不好, 回答里面的各位大佬,你就认为人家 是干的不好,说不定这个哥牛的一B。
下面的路怎么走, 我不知道~ 我也是渣渣,不够格当人生导师~
Ⅳ 干货!程序员需要掌握的几种图
随着互联网寒冬的的到来,程序员就业环境越来越严峻,这就要求我们必须要不断提高自己,来应对高压的工作环境。下面介绍的这几种图是我在工作中经常使用的,所谓的图,都是为了辅助思考的,辅助开发的,比文字描述的更清晰,更有逻辑。
前些年,网上有一个口号喊得很响: “人人都是产品经理” 。这就要求我们需要学习认图、画图的技巧,能从需求文档里快速的抽象出我们想要的东西。最近,网上曝出的程序员和产品经理之间的矛盾,大都是需求不清晰产生的,作为程序员的我们如果掌握的产品经理所必须的技能,那我们以后就可以吊打产品经理了,哈哈哈哈。。。
流程图 是对过程、算法、流程的一种图像表示,在技术设计、交流及商业简报等领域有广泛的应用。
计算机语言只是一种工具。光学习语言的规则还不够,最重要的是学会针对各种类型的问题,拟定出有效的解决方法和步骤即算法。有了正确而有效的算法,可以利用任何一种计算机高级语言编写程序,使计算机进行工作。因此,设计算法是程序设计的核心。
对同一个问题,可以有不同的解题方法和步骤。
例如,求1+2+3+…+100,可以先进行1+2,再加3,再加4,一直加到100,也可采取100+(1+99)+(2+98)+…+(49+51)+50=100+50+49×100=5050。
还可以有其它的方法。当然,方法有优劣之分。有的方法只需进行很少的步骤,而有些方法则需要较多的步骤。一般说,希望采用方法简单,运算步骤少的方法。因此,为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。
一个计算问题的解决过程通常包含下面几步:
传统流程图
用图表示的算法就是流程图。流程图是用一些图框来表示各种类型的操作,在框内写出各个步骤,然后用带箭头的线把它们连接起来,以表示执行的先后顺序。用图形表示算法,直观形象,易于理解。
美国国家标准化协会ANSI曾规定了一些常用的流程图符号,为世界各国程序工作者普遍采用。最常用的流程图符号见图。
流程图不仅可以指导编写程序,而且可以在调试程序中用来检查程序的正确性。如果框图是正确的而结果不对,则按照框图逐步检查程序是很容易发现其错误的。流程图还能作为程序说明书的一部分提供给别人,以便帮助别人理解你编写程序的思路和结构。
PS:墙裂推荐大家使用ProcessOn,画流程图的神器!!!
心智图 (Mind Map),又称 脑图 、 心智地图 、 脑力激荡图 、 思维导图 、 灵感触发图 、 概念地图 、 树状图 、 树枝图 或 思维地图 ,是一种图像式思维的工具以及一种利用图像式思考辅助工具来表达思维的工具。
心智图是由英国的托尼·博赞(托尼·布詹)于1970年代提出的一种辅助思考工具。心智图通过在平面上的一个主题出发画出相关联的对象,像一个心脏及其周边的血管图,故称为“心智图”。由于这种表现方式比单纯的文本更加接近人思考时的空间性想象,所以越来越为大家用于创造性思维过程中。
ps:我一般都是用的网络脑图,在线的比较方便
拓扑学(TOPOLOGY)是一种研究与大小、距离无关的几何图形特性的方法。 网络拓扑是由网络节点设备和通信介质构成的网络结构图。
拓扑学是数学中一个重要的、基础的分支。起初它是几何学的一支,研究几何图形在连续变形下保持不变的性质(所谓连续变形,形象地说就是允许伸缩和扭曲等变形,但不许割断和粘合) 拓扑图用于计算机网络示意,也就是不考虑计算机实际的位置,只表示网络中每台计算机以及网络设备之间的相互关系。
节点,节点就是网络单元。网络单元是网络系统中的各种数据处理设备、数据通信控制设备和数据终端设备。
链路,链路是两个节点间的连线。链路分“物理链路”和“逻辑链路”两种,前者是指实际存在的通信连线,后者是指在逻辑上起作用的网络通路。链路容量是指每个链路在单位时间内可接纳的最大信息量。
通路,通路是从发出信息的节点到接收信息的节点之间的一串节点和链路。
星型结构的优点是结构简单、建网容易、控制相对简单。其缺点是属集中控制,主节点负载过重,可靠性低,通信线路利用率低。
总线结构的优点是信道利用率较高,结构简单,价格相对便宜。缺点是同一时刻只能有两个网络节点相互通信,网络延伸距离有限,网络容纳节点数有限。在总线上只要有一个点出现连接问题,会影响整个网络的正常运行。目前在局域网中多采用此种结构。
环型结构的优点是一次通信信息在网中传输的最大传输延迟是固定的;每个网上节点只与其他两个节点有物理链路直接互连,因此,传输控制机制较为简单,实时性强。缺点是一个节点出现故障可能会终止全网运行,因此可靠性较差。
树型结构实际上是星型结构的一种变形,它将原来用单独链路直接连接的节点通过多级处理主机进行分级连接。
这种结构与星型结构相比降低了通信线路的成本,但增加了网络复杂性。网络中除最低层节点及其连线外,任一节点或连线的故障均影响其所在支路网络的正常工作。
UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。
功能模型, 从用户的角度展示系统的功能,包括用例图。
对象模型, 采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类别图。
动态模型, 展现系统的内部行为。包括序列图,活动图,状态图。
实体关系图,简记E-R图是指以实体、关系、属性三个基本概念概括数据的基本结构,从而描述静态数据结构的概念模式。
Ⅵ 程序员必知的七个图形工具
Graphviz (英文:Graph Visualization Software的缩写)是一个由AT&T实验室启动的开源工具包,用于绘制DOT语言脚本描述的图形。它也提供了供其它软件使用的库。
它的主要特点是代码生成图像,并且足够的简单。
而其代码特别简单——和我们平时表达的手法是一样的,即:
Graphviz有一个大的优点和弱点是:自动生成,导致画线的时候很出现出问题。接着,我们就来看看手动画线的例子。
遗憾的是,它并不支持在Mac OS上使用。而且,它并不在我购买的Office 365套装里。
在Mac世界里,最好的工具算是OmniGraffle,就是很贵——我们平时使用的是公司的Mac电脑,使用盗版软件是有法律风险的。
在GNU/Linux世界里,我们使用Dia。
顺便安利一下,我最喜欢的操作系统OpenSuSE——简洁、尾长、绿色。
OpenSuSE在KDE桌面下效果最赞了——因为KDE和OpenSuSE都是德国制造。总的来说,会比Debian系的Debian和Ubunt,及RetHat系的CentOS及Fedora稳定、漂亮。
令人遗憾的是这三个工具,我都用不了。Mac对X Windows的支持不是一般的差,于是我就需要别的替代工具。
ProcessOn是一个在线协作绘图平台,为用户提供最强大、易用的作图工具!支持在线创作流程图、BPMN、UML图、UI界面原型设计、iOS界面原型设计等。
并且,它还是跨平台的。
由于翻译和写书的需要,我成了一个Office 365订阅用户。于是发现在Word等一系列的Office工具中,自带了一个SmartArt的工具。
XMind思维导图软件被着名互联网媒体Lifehacker评选为“最佳头脑风暴和思维导图工具”及”最受欢迎的思维导图软件”。它有一个很大的优点是使用了全球最先进的Eclipse RCP 软件架构,支持跨平台使用。它有一个很大的缺点是使用了全球最先进的Eclipse RCP 软件架构,导致了有点卡。
相比于流程图什么的,它只适合做脑图。
如果你还在使用Eclipse,那么你应该试试Intellij IDEA了。
Leaflet 是一个为建设移动设备友好的互动地图,而开发的现代的、开源的JavaScript 库。是一个可以根据数据(GEOJSON,地理数据)生成图形的工具。
欢迎私信交流!
Ⅶ 求助找一张程序员挖坑的图片的原图
Ⅷ 程序员桌面都长什么样第四个是“真正的程序员”
电脑桌面,那是作为一个IT人士,展示个性的地方,作为一名程序员,工作压力大,还得找个地方释放释放,于是电脑桌面,就成了一个不错的地方。
当属性满满的程序员们,晒出自己的电脑桌面时,不由得让人惊叹,我去,电脑桌面还可以这么玩?
这是一名来自强迫症猿老的电脑桌面,最大的亮点,就是安装了Adobe公司的软件全家桶,管他有用没用,图标那么整齐,看起来就是舒服。
作为一名程序员,特别容易沉迷二次元文化,至少对于萌物没什么抵抗力,部分大佬,桌面肯定少不了这些东西。
来自一名miku控的程序员,三台工作电脑的壁纸是这样的:
上面这些都不算什么,再看看某一位程序员的壁纸:
你没有看错,这真的是壁纸,而且是实拍图。没有桌面的图标,也没有任务栏,就是一张整洁干净的风景图。那么问题来了,怎么打开软件呢?
要查找文件,直接WIN+E资源管理器即可。作为一名优秀的程序员,能用快捷键的,绝不使用鼠标去点,要打开软件,那太简单了,直接WIN+Q,再输入软件名就可以了。
更为奇葩的来了,一名程序员晒了他的背景桌面,结果没人在意这个,纷纷为这个骨灰级的键盘点赞。更有甚者,还问这个键盘多少钱出……
话说,你这个键盘,怎么像小霸王学习机的键盘,中间再多个卡槽,开机再喊一声:“小霸王其乐无穷啊”那就无敌了。
据说,程序员们都需要这样的一张壁纸:
最后分享粉丝们一波福利
给大家推荐一个免费的学习蔻qun,965 747 894,
里面概括应用网站开发,css,html,JavaScript,jQuery,Ajax,node,
angular等。对web前端开发技术感兴趣的同学,
不管你是小白还是大牛我都欢迎,每天都有技术分享,及项目直播讲解。
Ⅸ 程序员如何才能成为独立开发者
当你有了知识体系之后,遇到和你知识体系对应的场景相关的问题,就可以快速找到相关的知识,系统的分析问题,最终解决问题。
你看,是否拥有知识体系,导致了熟练开发者和普通开发者的一个非常重要的区别:熟练开发者能够独立负责一个模块或子系统的设计和开发工作,拥有分析问题、解决问题的能力和任务分解的能力,可以分配任务给普通开发者。
进阶修炼方向
好啦,从技术水平的角度讲,普通开发者和熟练开发者的区别就在于:普通开发者的知识不成体系,而熟练开发者构建了与某个应用场景相关的知识体系。
这样看来,普通开发者要想进阶,方向就非常明确了:构建自己的知识体系。
那么,怎么构建知识体系呢?先参考我的另一篇文章:构建知识图谱,让自己更值钱。如果后续有机会,我会重构一篇新的文章,再聊聊构建知识体系这个话题。