做一名程序员有前途吗?!

2024-05-14

1. 做一名程序员有前途吗?!

做程序员最需要的就是熬得住,有时候你努力了很长一段时间可能一点好的结果都没有这是很正常的。所以就看你的耐心怎么样。如果你仅仅是有激情,想进入这个行业尝试,那做为前辈来说我还是奉劝你打消这个念头,到IT里面做程序设计是很辛苦的,很多时候你脑子里想的只有代码,其他的都不记得了。生活不规律,睡眠不足这些都是家常便饭。所以,如果你想进来,那请你做好充分的思想准备,很多只有激情的年轻人,最后都是以放弃告终的,千万要想好,半途而废只会浪费光阴。最后,做程序员是有前途的,这个前途不是停止在程序员上,而是不断的往上走,比如成为工程师、架构师、分析师等,这些才是更高的你需要去奋斗的目标,千万不要只做底层的程序员,不然就停止进步了。
祝你成功。

做一名程序员有前途吗?!

2. Java 初,中,高各级程序员都什么水平,什么样的能达到初级水平,什么样的能达到中级水平

1、最牛逼的初级程序员?这个说的让人回答起来很尴尬啊。要说最牛逼的话,就是在初级玩好swing和操作多线程吧。
2、最牛逼的高级程序员?首先要对得起最牛逼的话,那么这个高级程序员涉猎的知识就非常的宽广了!基本上在某几种语言中都融会贯通,然后去解决各式各样遇到的问题。
3、中级程序员就是不断的积累,不断的去做项目,然后总结,才能向高级程序员靠拢吧。

3. 程序员可以光靠技术度过中年危机吗?

说起来是一个很悲催的话题。程序员有一个不成文的规定到了45岁就应该退休了。这是因为你的大脑你的才华已经跟不上趟了。

很多程序员到了35岁就有中年危机,坐在电脑面前已经大腹便便,头发谢顶常年熬夜,除了程序员他又能做些什么呢?后一辈的新起之秀,可以通宵的加班,你身体拼不过他们,他们有奇思妙想随时上手,你在才华上也拼不过他们。难道只能卷铺盖回家吗?
其实在很多公司里,辞退老一点的程序员并不是常态,稳定的公司都不会辞退老员工,但是会合适的调离岗位。所以这个时候程序员的心态要放好,只要在公司里,你已经奋斗了这么多年的公司,做什么岗位只要自己能适应都是好的。

程序员从程序员的岗位上面退了下来,并不是一件可耻的事情。比如说有的公司,将老的程序员留用下来,是为了丰富的经验,给年轻的程序员以指导。这个工作既轻松又体面。
其实程序员的工资都很高,只要不乱花钱,他们有相当的积累。从重要的岗位上退下来以后,有更多的时间享受生活甚至学习其他的技术。如果你热爱公司,在这个公司里一定能找到合适的落脚点。

如果想重新创业,那么就要重新的面对你并不了解的现实世界,去认真的触摸它们,采取小投资慢慢进的方式,从小的商业成功,来积累大的成功。
所以程序员没有什么中年危机。只是说生活在中年的时候可能变得会更宽阔一些,而自己要学会适应。

程序员可以光靠技术度过中年危机吗?

4. 做一个程序员需要达到什么样的水平

辨别一个程序员的水平唯一的办法就是看 产出质量。
算法和数据结构都是锦上添花,并非是雪中送炭。而一个程序员的水准大致上是可以通过之前的代码质量估算出来的。【如果你可以获得此程序员的真实编写的代码,比如原创的Github】。
举个栗子:下面是我最近在单位一个同事写的代码,Java语言
private boolean checkProportions(String str, Integer grades) {
String proportion = str;
for (int i = 1; i < grades; i++) {
String st = proportion.substring(proportion.lastIndexOf(",") + 1);
if (st.equals(""))
return false;
proportion = proportion.substring(0, proportion.lastIndexOf(","));
}
if (proportion.equals(""))
return false;
str = str.replace(".", "");
str = str.replace(",", "");
for (int i = str.length(); --i >= 0; ) {
int chr = str.charAt(i);
if (chr  57)
return false;
}
return true;
}
大致上的功能就是将 1,2,6.2,4,1 的字符串判断每一 ‘,’内是数字,而且长度符合规定
这样的代码看上第一眼就觉得非常的丑陋。所以在我的要求之下,进行了一次重构。
private static boolean checkProportions(String str, int grades) {
String[] proportions = str.split(",");
if (proportions.length != grades) {
return false;
}
for (String s : proportions) {
if (!NumberUtils.isNumber(s)) {
return false;
}
}
return true;
}
这里看上去差不多就Ok。这样的代码其实也并没有用到什么数据结构和算法,就是很简单的字符串处理。

实际情况:在我们写的绝大多数的代码里面,大部分属于业务逻辑,极少部分的代码需要使用到算法和数据结构,在这样的情况下,我们能使用的到的技能最为关键的是让代码如何更加合理。而让代码更加优秀的方式是通过千锤百炼的重构,而重构是极大的考验一个程序员耐心和能力的东西。
质量的范围广泛,我从下面几个小方面聊聊。
出货能力:如果一个程序,算法再精妙,不能出货都是扯淡,我看过某某大神,算法溜得很,但是一个人完全做不到按照工程需要把事情给做完。
优化能力:并没有一个程序是一步到位的,一个工程的交出去可运行了,那才是第一步,很多时候随着业务的增大,对性能的要求越来越高,有一定对于代码优化的能力也是比较重要的。
调错能力:项目越大,遇见的Bug也就是越离奇,这个时候需要强大的Debug能力,找出那个最为关键的错误点,甚至于追溯底层框架的源码。
技术掌控:你项目能用Spring,Hibernate等等框架,但是有没有想过,这些技术你真的可以掌控么,如果有一天你的框架版本需要升级,真的做得到么?甚至于从Hibernate转为MyBatis。

算法和数据结构是影响到一些核心区的问题,但是其他的一些技能,比如面向对象的架构设计,代码的低耦合,那都是对整个项目有着直观改善的技能。并非是贬低算法,而在实际工作中,有太多比算法更重要的问题了。

5. 做程序员需要什么条件?

程序员是一种技术工作,在IT的发展中有相当重要的地位,从底层硬件通讯协议的建立, 到数据传输层的处理,到操作系统的建设,到数据库平台的建设,一直到应用层上各种数 据营销平台的搭建,程序员在里面都扮演着举足轻重的角色并为IT事业的发展做出了巨大 的贡献。 

中国有很多精于编码的人,但是中国软件行业,尤其是网络应用开发方面误区很大,很难 形成有规模的软件开发力量和产品能力,不但比美国差距甚远,和印度相比也是颇有不 如。这些问题不是在于中国程序员的智商和工作努力状况,也不是在于国家和民间对开发 
的投入程度,而是很大程度上,有一些对技术,对程序开发,对项目设计方面的思想误 区,这些误区,导致了软件行业的产品化能力不足,缺乏规模化和大型复用系统研发能 力,可以说,改变认识误区,是解决软件行业小作坊模式和个体英雄模式所带来的局限性 的重要工作。 

中国有很多小朋友,他们18,9岁或21,2岁,通过自学也写了不少代码,他们有的代码写的 很漂亮,一些技术细节相当出众,也很有钻研精神,但是他们被一些错误的认识和观点左 右,缺乏对系统,对程序的整体理解能力,这些人,一个网上的朋友说得很好,他们实际 
上只是一些Coding fans,压根没有资格称为程序员,但是据我所知,不少小网络公司的 CTO就是这样的coding fans,拿着吓人的工资,做着吓人的项目,项目的结局通常也很吓 人。 

程序员基本素质: 

作一个真正合格的程序员,或者说就是可以真正合格完成一些代码工作的程序员,应该具 有的素质。 

1:团队精神和协作能力 

把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最 重要的安身立命之本。把高水平程序员说成独行侠的都是在呓语,任何个人的力量都是有 限的,即便如linus这样的天才,也需要通过组成强大的团队来创造奇迹,那些遍布全球 
的为linux写核心的高手们,没有协作精神是不可想象的。独行侠可以作一些赚钱的小软 件发点小财,但是一旦进入一些大系统的研发团队,进入商业化和产品化的开发任务,缺 乏这种素质的人就完全不合格了。 

2:文档习惯 

说高水平程序员从来不写文档的肯定是乳臭未干的毛孩子,良好的文档是正规研发流程中 非常重要的环节,作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级 程序员和系统分析员,这个比例还要高很多。 

缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇 到极大的麻烦。 

3:规范化,标准化的代码编写习惯 

作为一些外国知名软件公司的规矩,代码的变量命名,代码内注释格式,甚至嵌套中行缩 进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和 纠错,也有助于不同技术人员之间的协作。 

有些coding fans叫嚣高水平程序员写的代码旁人从来看不懂,这种叫嚣只能证明他们自 己压根不配自称程序员。代码具有良好的可读性,是程序员基本的素质需求。 

再看看整个linux的搭建,没有规范化和标准化的代码习惯,全球的研发协作是绝对不可 想象的。 

4:需求理解能力 

程序员需要理解一个模块的需求,很多小朋友写程序往往只关注一个功能需求,他们把性 能指标全部归结到硬件,操作系统和开发环境上,而忽视了本身代码的性能考虑,有人曾 经放言说写一个广告交换程序很简单,这种人从来不知道在百万甚至千万数量级的访问情 
况下的性能指标是如何实现的,对于这样的程序员,你给他深蓝那套系统,他也做不出太 极链的并访能力。性能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程 序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险 
和恶意攻击的可能性。就这一点,一个成熟的程序员至少需要2到3年的项目研发和跟踪经 验才有可能有心得。 

5:复用性,模块化思维能力 

经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练工,每天都是重复写 一些没有任何新意的代码,这其实是中国软件人才最大浪费的地方,一些重复性工作变成 了熟练程序员的主要工作,而这些,其实是完全可以避免的。 

复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一 些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在, 是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避 
免重复性的开发工作,如果一个软件研发单位和工作组能够在每一次研发过程中都考虑到 这些问题,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投 入到创新的代码工作中去。 

一些好的程序模块代码,即便是70年代写成的,拿到现在放到一些系统里面作为功能模块 都能适合的很好,而现在我看到的是,很多小公司软件一升级或改进就动辄全部代码重 写,大部分重复性工作无谓的浪费了时间和精力。 

程序员应具备的素质中 

6:测试习惯 

作为一些商业化正规化的开发而言,专职的测试工程师是不可少的,但是并不是说有了专 职的测试工程师程序员就可以不进行自测;软件研发作为一项工程而言,一个很重要的特 点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行 
认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效 率和可靠性就有了最大的保证。 

测试工作实际上需要考虑两方面,一方面是正常调用的测试,也就是看程序是否能在正常 调用下完成基本功能,这是最基本的测试职责,可惜在很多公司这成了唯一的测试任务, 实际上还差的远那;第二方面就是异常调用的测试,比如高压力负荷下的稳定性测试,用 
户潜在的异常输入情况下的测试,整体系统局部故障情况下该模块受影响状况的测试,频 发的异常请求阻塞资源时的模块稳定测试等等。当然并不是程序员要对自己的每段代码都 需要进行这种完整测试,但是程序员必须清醒认识自己的代码任务在整体项目中的地位和 
各种性能需求,有针对性的进行相关测试并尽早发现和解决问题,当然这需要上面提到的 需求理解能力。 

7:学习和总结的能力 

程序员是人才很容易被淘汰,很容易落伍的职业,因为一种技术可能仅仅在三两年内具有 领先性,程序员如果想安身立命,就必须不断跟进新的技术,学习新的技能。 

善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种要求就更加高 了。 

但是学习也要找对目标,一些小coding fans们,他们也津津乐道于他们的学习能力,一 会学会了asp,一会儿学会了php,一会儿学会了jsp,他们把这个作为炫耀的资本,盲目 的追逐一些肤浅的,表面的东西和名词,做网络程序不懂通讯传输协议,做应用程序不懂 
中断向量处理,这样的技术人员,不管掌握了多少所谓的新语言,永远不会有质的提 高。 

善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有 目的的跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,这样逐步提高, 一个程序员才可能成长起来。

做程序员需要什么条件?

6. 怎样达到中产阶级?


7. 自由程序员能干到多大岁数?还是青春饭吗?

程序员第一大职业风险就是被科技浪潮无情淘汰。
很多行业,从业者的职业生涯从入场到退场,像是在乘机场的自动传送带。人少的时候,你可以往前挪挪,或者伺机走一下快速道,越过那些挡在你前面的浑浑噩噩的家伙,但你能做的也就这些,快不了太多;人多的时候,你只能耐心排着,什么岁数到什么位置,前面的人不离场,你不能抢下他的位置。这一路你走的慢慢悠悠,四平八稳,但好歹,不那么辛苦,除非遇着剧变,你被踢出传送带的几率不大。
程序员不一样。从入场到退场,活脱脱一出 tomb run 的游戏:身后怪物穷追不舍,你只能不停地往前跑。虽然沿途可以收获很多金币(package),但你一旦放慢脚步,或者没能及时变道,就不得不主动出局或者被清场出局。主动出局一般是体面的 —— 当 manager,当法人,转 VC,转 sales,去教书,做庄德扑等等, 总之换个角色浪,从此和之前的角色相忘于江湖;被清场则是不体面的 —— 钱还没赚够,就被服务了多年的东家无情抛弃。为了养家糊口,只得 restart,重归赛道。可赛道哪是那么好挤回来的 —— 略微谢顶,银发中间或夹杂着些许黑发,肚腩厚实得,从上往下看,都看不见脚趾的奔四大叔,被二十岁出头的毛头小子面试:大叔,说说看,你能给我们带来什么价值?
程序员的第二大职业风险是马太效应过于明显,有时候稍低的起点就意味着经年累月数倍于别人的奋斗。
2017年的计算机应届生,我听说到的白菜价是二十五万。我信,但这可能是 top 10% 在北上广深的水平。剩下的,平均收入至少要拦腰。五年后,这些 top 10% 平均水平能上五六十万,加上股票就没边了;而剩下的,平均水平可能还达不到他们同龄人五年前所谓的「白菜价」。
这个游戏是这么玩的:
你学习好,卯足劲上了 985,然后大学的四到六年又认认真真地学习和开发,毕业后工作找你,拿了 BAT 等一线的 offer,兢兢业业工作,工资水涨船高,公司股票翻番,周围还都是优秀的人,有闲得无聊读个 MBA 的,有出国接受更大挑战的,有跑去创业公司当 CTO 的,人比人气死人,你也就被逼不断学习维持优秀的状态,好让自己不至于垫底。市场上满满都是向你抛来的橄榄枝,挪个窝轻松二三成的涨幅,你却不待见;
你学习不好,仅仅够上了个一本,大学有点荒废,代码没写几行,毕业后你找工作,鞋底磨穿,勉勉强强有个外包公司收留,没日没夜地工作,但公司就这么个水平,薪水很难涨,周围的同事浑浑噩噩地混日子,你稍微努力点,就显得鹤立鸡群。想跳吧,履历不好,跳不出好结果 —— 给心仪的几个大公司发了简历,却好像荷叶上泻过的水,连个痕迹都没有。
这个行业就是这么操蛋:起点低一些,人生的轨迹就差了很多。你要认清这一点,如果你不幸是那个起点低,现状差的人,那就加倍努力,想办法证明自己不比别人差。和咨询这种出生决定命运的行业,这一行还有很多证明你的水平的机会 —— 起码,talk is cheap. Show me your code 是行业的共识。
程序员的第三大职业风险是诱惑太多,容易毁了自己的职业生涯。
这里的诱惑主要是市场机会的诱惑。前面说了,局部供需严重不平衡,因而不乏挥舞着巨额钞票的工作机会。如果你没有一个良好的职业规划,也没有清楚地计算机会成本,那么就很容易被这样那样的高薪诱惑,从而在不合理的时间,不合适的机会上跳槽。当新的工作没有想象的那么好,或者新的公司遭遇崩盘,你不得不止损出局。这时候,找下一份工作就相当棘手。市场不认可你的价值,而你却经历了由俭入奢的过程,不愿回头,于是下一份工作依旧是一个不够深思熟虑的选择。当连续几次错误选择之后,你的职业生涯就岌岌可危了。
我见过五年换过八份工作的人,也见过对自己没有稳定定位,在几个方向上来回飘的人。我还见过履历倒着来的人 —— 在硅谷,见得多的是 Google - FB - Airbnb 的职业切换,我却见过 FB - Google - MS 的切换(没有贬低 MS 的意思)。这种没有想清楚,仅仅因为 package 一时之高低就随意跳槽,是程序员们的《伤仲永》。
以上。希望能触发你的思考。陷入深深的沉思前:请先不吝赞赏

自由程序员能干到多大岁数?还是青春饭吗?

8. 在中国30岁开始学编程能一辈子做程序员吗?

不清楚啊。我也是30岁,我自学了几个月了。
我不知道以后是否能做一辈子程序员。
但我想,无论什么行业很少有能做一辈子的吧。除非是公务员了。
其实哪一行都是一个样,年纪大了以后自己就必须要有积累,技术积累或人脉积累之类的。
如果三四十岁了还没什么积累,和毕业生比没什么优势,偏偏工资要求又高一截,那样的话自然得玩完。
其实就算是公务员也不好混啊,爬不上去的话一辈子当个科员,一把年纪了却被二三十岁的科长喊作 小王、小李。。。。。
下面的这段是2017年3月补充:
目前刚好入行一年了。即将33岁。年薪13万多。
据我了解,30岁来的程序员一大把,而且他们是毕业就开始做,到30来岁这个年纪后基本上经验比较丰富了,年薪二十多万较为普遍。
而且这是一个买方市场,是企业需要你,是岗位需要你!!
因此,一切靠自己努力。
最新文章
热门文章
推荐阅读