程序员_程序员转行 - CSDN
程序员 订阅
程序员(英文Programmer)是从事程序开发、程序维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚。软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类。 展开全文
程序员(英文Programmer)是从事程序开发、程序维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚。软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类。
信息
拼    音
chéng xù yuán
职    责
程序的设计、开发、维护
分    类
设计人员、编码人员
中文名
程序员
外文名
Programmer
程序员岗位职责
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。7、负责相关技术文档的拟订。8、负责对业务领域内的技术发展动态进行分析研究。
收起全文
精华内容
参与话题
  • 程序员崩溃的瞬间(非程序员勿入)

    万次阅读 多人点赞 2019-09-26 16:51:13
    今天给大家带来点快乐,程序员才能看懂。 来源:https://zhuanlan.zhihu.com/p/47066521 1. 公司实习生找 Bug 2.在调试时,将断点设置在错误的位置 3.当我有一个很棒的调试想法时 4....

    今天给大家带来点快乐,程序员才能看懂。

     

    来源:https://zhuanlan.zhihu.com/p/47066521

     

    1. 公司实习生找 Bug

     

    640

     

    2. 在调试时,将断点设置在错误的位置

     

    640

     

    3. 当我有一个很棒的调试想法时

     

    640

     

    4. 偶然间看到自己多年前写的代码

     

    640

     

    5. 当我第一次启动我的单元测试时

     

    640

     

    6. 数据库的 Delete 语句忘了使用限定词 where...

     

    640

     

    7. 明明是个小 bug,但就是死活修不好......

     

    640

     

    8. 当我尝试调整生产数据库中的一些东西时

     

    640

     

    9. 好像真的没人发现我产品里的 bug......

     

    640

     

    10. 下班前我还有一项任务没有完成

     

    640

     

    11. 产品还没测试直接投入生产时

     

    640

     

    12. 调试过多线程的都会懂!

     

    640

     

    13. 当我以为已捕获了所有可能的异常...的时候

     

    640

     

    14. 当我试图清理几行所谓的旧代码的时候

     

    640

     

    15. 当有人让我帮他调试代码时

     

     

    640

     

    16. 当程序员第一次向老板演示项目时

     

    640

     

    17. 结对编程,需要再了解一下吗?

     

    640

     

    18. 当你看到你几个月没碰过的代码

     

    640

     

    19. 接到产品经理电话的我睡意全无!

     

    640

     

    20. 测试的时候一切 ok,真正上线的时候……

     

    640

     

    21. 作为一个程序员,拷问灵魂的时刻到了!

     

    640

     

    22. 当年学 C 语言的过程

     

    640

     

    23. 当前端程序员想改后台代码时,后台程序员的样子

     

    640

     

    24. 调试 bug

     

    640

     

    25. 正在调试,突然内存溢出了

     

    640

     

    26. 需求文档又改了

     

    640

     

    27. 苦逼的后端工程师

     

    640

     

    28. 后端工程师做 UI 的活

     

    640

     

    29. 前后端分离开发

     

    640

     

    30. 单身互联网狗的一天

     

    640

     

    31. 在生产环境做 hotfix

     

    640

     

    32. 刚调稳定的系统,公司叕空降了一位架构师,又双叕要重构现有系统……

     

    640

     

    33. 当程序员听客户说还在用 IE 时

     

    640

     

    34. 当黑客拿到 root 权限之后

     

    640

     

    35. 代码进入循环分支后

     

    640

     

    36. 新手程序员第一次做项目的过程

     

    640

     

    37. 零错误零警告一次编译通过

     

    640

     

    38. 春节前后上班写代码状态是这样的

     

    640

     

    39. 自信爆棚地去重构一个看似简单的模块

     

    640

     

    40. 被老板委派接手刚刚离职同事的项目...

     

    640

     

    41. 当他们要求我测试所有应用功能时

     

    640

     

    42. 准备下班的时候,测试又提 bug 过來了…

     

    640

     

    43. 使用新框架却忘记阅读文档

     

    640

     

    44. 测试实习生的代码

     

    640

     

    45. 网络延迟的危害...

     

    640

     

    46. 测试刚写完的代码

     

    640

     

    47. delete 时,忘记加 where 条件了

     

    640

     

    48. 轻量级架构遇到重量级需求

     

    640

     

    49. 当我以为我修复了一个 Bug

     

    640

     

    50. 当我看实习生编码

     

    640

     

    51. 首次在 IE 中测试我的网站

     

    640

     

    52. 当我第一次测试我的代码时

     

    640

     

    53. 新手调试 CSS

     

    640

     

    54. 提前交付客户要求

     

    640

     

    55. 我设计的接口 和 别人调用我的接口 (好疼)

     

    640

     

    56. try-catch 在错误的地方

     

    640

     

    57. 修改一个小 bug,却把服务器弄宕机了

     

    640

     

    58. 当我推错了分支

     

    640

     

    59. 工作中经常被打断

     

    640

     

    60. 高级开发人员作为一个团队进行编程时

     

    640

     

    61. 能一个手指完成的绝不用两只手系列

     

    640

     

    62. 高级开发人员重构代码

     

    640

     

     

    没有了,过瘾不,忍住,不能笑哈

    640?wx_fmt=jpeg

    ‧  END  

     

    关注公众号『strongerHuang』,在后台回复“1024”,查看更多精彩内容,回复“加群”,可加入黄工的技术交流群。

    640?wx_fmt=jpeg

    展开全文
  • 一个毕业一年程序员的感悟

    千次阅读 多人点赞 2018-07-22 00:01:04
    前一段看到朋友圈里的学弟学妹们开始晒毕业照,这一晃据我毕业也一年多了。走出了校园,工作了一年,见得多了,体会和感触也随之变多。所以,又开始习惯性地复盘过去的一段经历,用现在不成熟的想法去回顾之前更不...

    这里写图片描述
    前一段看到朋友圈里的学弟学妹们开始晒毕业照,这一晃据我毕业也一年多了。走出了校园,工作了一年,见得多了,体会和感触也随之变多。所以,又开始习惯性地复盘过去的一段经历,用现在不成熟的想法去回顾之前更不成熟的想法,哈哈。


    挑出我认为比较重要的四点感受来说吧。

    一.理论知识的重要性

    这个问题,我在毕业半年之后就意识到了。经常听到有人说“学校里的知识都是过时的,没用的,工作中顶多也就能用到10%”。我承认这句话在某些角度上有一定的道理,但我认为理论知识并非无用,学好理论其实是很必要的。

    我来告诉你为什么。首先我们来分析一下宣扬“无用论”的那些人。我猜大部分应该都是对行业理解不深的开发小白或者是普通的开发人员,这些人可能刚刚工作没几年,觉得自己从零基础到能开发出一些模块就已经很满足了,觉得编程不过如此;还有那些可能是计算机专业出身,但是毕业后却从事不相关的行业的那些人,茶余饭后可能调侃一下专业无用论。

    后者我就不说了,那其他行业确实用不到计算机理论知识。但对于前者,在我看来,混日子或者满足于现状的人居多吧。如果他们不改变自己认知,很难在这个行业走得长远,程序员中年危机了解一下?真正牛逼的人,理论基础一定很强!

    最简单验证我的观点的方法就是,大家去招聘网站看看大公司开发岗的招聘要求就知道了。很多岗位明确要求,计算机理论基础扎实、数据结构与算法基础扎实。再结合往年BAT校招情况,哪个技术岗不考察基础知识的?据我在BAT工作的同学说,这样的行业巨头,无论是校招和社招,在面试时技术知识都会作为重点考察内容,尤其是校招。
    这里写图片描述
    我本科是CS专业,虽然我不是学院的学霸,但我专业课的成绩还算是中上游。一开始工作的时候,我也觉得以前学的专业知识对工作好像没多大帮助。但是越往后,理论基础带给我的优势就逐渐突显出来。

    这里我举几个例子。不了解计算机组成原理的人,在工作日常可能就分不清CPU、内存、硬盘等硬件相关的内容。经常碰见有的开发人员,明明花了4、5千买了一台新笔记本,但是开发用起来还是很卡,结果是因为内存仅有4G;在编码日常,就拿Java来说,有关对象的引用,实际上就是C中的指针的概念。如果不清楚计算机内存工作原理,就很难理解引用这个概念;同理对于不了解操作系统原理的人,可能就很难理解多线程;不了解网络原理的人,可能就不清楚ip、端口、http协议之间的关系等。

    培训行业之所以这么火爆,是因为单纯论编程技能,经过培训或者大量练习,的确可以做到快速上手。但培训机构很少会将有关计算机理论方面的知识,而这也是需要长期学习积累的。所以很多人反映从事开发几年了,到某一时间点就感觉总也提升不上去,遇到了瓶颈,其实绝大部分原因就是基础欠缺造成的。

    当我认识到这个问题后,这半年来我开始针对性地复习相关基础知识。虽然有些理论学起来枯燥乏味,甚至感觉没什么用,但是一旦理解了其道理,再来看眼前的工程,感觉就完全不一样了。

    二.解决问题能力的重要性

    工作中,对于没遇到过的问题,会不会往往不要紧,拥有解决问题的能力是最关键的。那什么是解决问题的能力?就是当问题发生的时候,能够用科学的、高效的方法,迅速解决它。我的一位领导说过一句让我印象非常深刻的话——“当出现问题时,不要找100个借口证明它的困难性,而是要找100个方法去全力以赴解决”。

    刚入行的时候,每天要花大量时间在基础的编码任务上。但越往后,编码本身往往不再是难点,遇到问题并解决才是工作的重点。没有人会知道所有的问题的答案,就算他知道,那每天还会有各种各样未知问题的产生。所以评判一个工程师它牛逼与否,除了看他懂得多少以外,还要看他解决问题的能力,是否能又快又好地解决问题。

    拿我个人来说吧,本科毕业一年,从事开发工作两年。我也不是那种每天都疯狂学习的人,大学四年也不敢说自己积累了多少,所以要论知识和经验,我要学习的东西还有很多。但是,这并不影响我现在从事的工作。虽然经常遇到难点,但迅速通过各种资源学习、整合解决遇到问题,是我参加工作以来一点点不断在提升的能力。我可以自信的说,只要不是超出我能力范围太大,交给我的任务或者遇到的问题,我都可以找到办法解决,尽管在这之前我不会。

    而且现在,对于开发人与来说,编程似乎越来越简单了。工程中遇到的大部分问题,其实早就有人遇到过了。互联网时代,各类技术博客论坛平台的内容越来越多,还有强大的“同性交友网”Github等开源社区,以及各种技术交流群社区等,我们很容易就能在网络上找到我们想要的解决方案。所以,对于现在的程序员来说,解决问题的能力其中一大主要部分其实是检索能力。掌握了高效的搜索能力,几乎可以解决70%的问题。这里就不展开说了,以后有时间我再整理一些我总结的搜索技巧。

    所以说,如果你拥有强大的解决问题的能力,那你的竞争力就会变得非常高。从校招就可以看出来,为什么现在互联网公司动辄能给应届生开出20W、30W甚至更高年薪,难道是现在应届生都懂得多么?说白了,每届应届生毕业时的水平都是差不多的,企业心里都有数。但企业投资的不是应届生本身,还是那句话,会不会不要紧,是否具有学习能力和解决问题能力是企业所看重的。

    同理,在面试中,面试官除了考察面试者知识技能积累情况,也会重点考察逻辑思维,其实就是解决问题的能力。有时候面试官的问题,没什么标准答案或者就是超纲的问题,以此来模拟遇到问题的情况,来观察面试者如何应对。有关面试相关的感悟,我会另写一篇来详细说。
    这里写图片描述
    各家互联网公司的给应届生的薪资概况

    三.学历的重要性

    要说我目前的遗憾之一,就是没有在本科结束后去读研究生。当然,只是遗憾,我并不后悔我的选择。我之所以这么说,就是因为我觉得学历往往很重要,但也绝不是百分百的重要。

    在某知名匿名交流社区,经常会看到抱怨HR只认学历的帖子,什么非985、211简历不看、专科靠边站等,抨击中国的学历社会多么不公平,这样的帖子很多,下面的评论也是说什么的都有。其中我觉得挺有意思的评论是“别人寒窗苦读12年考上名校和你随随便便考个专科,如果能在毕业时同等待遇,那你认为公平么?”

    如果单纯认为高学历等于懂得多,那就容易产生抱怨情绪——你看,虽然我学历不高,但通过这么多年的努力,见得也多了,懂得也不少,还非要拿个高学历去证明一下么?这其实就是对学历的一种误解,高学历背后的重要性其实有很多点,我简单和大家扒一扒。

    1.工作优势。有的工作只要985/211本硕的学生,这是硬伤。这里有人一定跟我说,985、211里也有混子,身边某某某普通学校出校混得比重本好的言论。没错,我承认,你说得都对。我还可以告诉你,马云还是杭州师范大学毕业的呢,然后呢?这个世界上,总有人用个别例子去硬怼大概率事件,或者总痴心妄想小概率事件会发生在自己身上。事实证明,985、211里大部分学生的各项能力要比普通学校学生强,所以优秀的企业,肯定会择优挑选名校学生。尽管其他学校也有牛逼的人,但相比于筛选劣质简历的人力成本,企业宁可漏掉他们。试想你是一个知名公司的HR,每天收到上千上万份简历,你会有时间一个一个分析低学历者的简历判断他们的能力么?

    2.在攻读高学历的过程,会培养并提升解决问题的能力、科学思维的方式。这也是我前面提到的,这种能力是很具有核心竞争力的。论智力水平,绝大部分人先天情况都差不多。所以这种后天训练出来的思维能力,会让一个人在人群中脱颖而出,而且一个人是思维高度,往往决定一个人能走多远。

    3.人脉优势。人往高处走,水往低处流。其实很多人忽略了高学历的潜在价值,就是你会结实一群大概率未来都会发展不错的人,你们会成为同学朋友,这是你人生中宝贵的个人财富。这比财富10年之后,会越来越值钱。大家看看那些知名企业的高管就知道了,很多都是名校出身,再看看他们身边的合作伙伴或者同事,也大多是名校出身。身处于这样的圈子,圈子就是价值。

    所以不要只认为人家高学历只不过是多读了几年书。一纸文凭确实只是一张纸,那张纸的价值是有限的,但是背后隐藏着的价值,如果利用好了,就是无限的。所以,之所以有人读了几年研究生还不如本科生、专科生,实际上就是没有利用好隐藏价值。

    不过我还是那句话,学历往往很重要,但也绝不是百分百的重要。我是普通学校本科出身,但我也拿着一份还算不错的薪水,没有比名校出身的差太多,我身边有很多优秀的同学,也没有名校光环,但也照样在大厂混的如鱼得水。当然了,这同时也要付出更多的努力,才有可能跟名校出身的人站在同一高度。你可以认为这是鸡汤,但我想说的是没有理由会阻碍你变得牛逼。按照之前我说的思路,所以如果你能够通过其他方式获得那些隐藏价值,学历的重要性会一定程度被弱化。正所谓弯道超车,机会总是会有的。

    四.坚持写作的重要性

    我从去年毕业开始,正式在CSDN上写博客,主要以技术为主,记录、整理工作中遇到的问题的解决方案以及学习笔记。看我朋友圈的朋友可能会知道,前几天我发了一个博客访客截图,开博一年多以来,访客超过10W+,排名3W+。这也是算是对我一年以来坚持写作的非常重要的一次鼓励吧。
    这里写图片描述

    为什么说要坚持写作?

    1.逼着自己把知识学透。之前也提到了,开发这个领域,程序员每天的主要工作就是学习和解决问题。如何验证自己有没有真正掌握学到的知识?大家可以类比一下学生时代,同学之间互相辅导。有时候明明自己可以解一道题,但是给别人讲的时候讲不明白。这其实就说明自己没有完全掌握这道题,如果你能给给别人讲明白你学到的东西,就说明你掌握了所学的内容。而工作中,一般也不会有给别人当面讲课这样的机会,所以通过工作笔记、博客、公众号等方式分享个人学习心得、整理学习内容、传授经验就是最方便的讲述方式。我的体会最深的就是,每次自己学习的时候,碰到不好理解的、困难的内容,如果抱着要写成博客给别人看的心态,就能逼着自己把它学会,原因很简单——我不想在博客上胡说八道误导别人。

    2.锻炼自己的逻辑能力、表达能力。有时候就算自己真的掌握了某个技能,但是依旧没办法给别人讲清楚。这就说明自身的逻辑能力和表达能力还有欠缺。经常听外行的人评价程序员话不多、社交少,这正恰恰说明了大部分理工科出身的程序员的弱点——不善于表达交流,而这也是很多人遇到瓶颈的障碍之一。虽然你做了很多,但是别人不知道啊。因此我认为,一个真正出色的工程师,一定是善于表达的,他不光自己会做,还要有逻辑地讲出来、帮助其他人一起成长,这才是出色工程师应该具备的能力之一。腾讯马化腾、微信张小龙、小米雷军、百度李彦宏、360周鸿祎就是很好的例子。

    3.写作可以提高工作、学习效率。不止一次,我的同事问我一些技术问题,恰巧这些问题我以前遇到过,花费了一定的时间去解决并整理成博客,这时候我就可以直接把博客地址发给他,这样就节省了很多时间。同时,通过记录自己学习过的知识,也极大地方便了日后的复习,避免了很多重复筛选信息的时间,而且自己整理的内容也是最适合自己的。

    4.建立个人品牌,扩大影响力。评价一个程序员牛不牛标准有哪些,学历高?薪资高?职级高?大厂出身?GitHub上有万个Stars项目?要我说,有知名个人品牌的程序员就很牛逼。经常看到有人在社区抱怨自己不是名校出身,学历不高,又没有大公司工作经验,找工作困难,能力得不到认可。而学历、学校、过去的工作经验都是已经板上钉钉的事,再怎么抱怨也没用。但这些可都不是阻碍自己建立个人品牌的理由。我们应该感谢这个时代,我们几乎没有成本就可以在各个平台上建立个人账户,发表自己的观点和内容。如果能有个百万级访问量的博客、或者运营一个有几十万粉丝的个人公众号,我相信就算你没有名校名企光环,也一样可以得到其他人、其他公司的青睐。谁会拒绝一个有影响力的人呢?

    所以,写作几乎是一件有利无害的事。当然了,我反对为了写博客而写博客。写的乱七八糟有头无尾不说,排版混乱或者干脆扔一堆代码在上面,没有注释没有自己的讲解,甚至不经审核把错误的内容发表出来,这种博客不光浪费自己的时间,更耽误其他人宝贵的时间。所以我一直坚持原创,坚持质量为主,拒绝冲量,拒绝抄袭,我也相信我的文字随着时间的积累,会给带给我巨大的价值。


    以上是我毕业一年以来的思考与总结,其实还有很多其他“重要性”,有时间再跟大家分享。一年仅是个节点,未来还有很长的路要走。时刻保持清醒,不断思考,坚持总结与复盘。最后,如果你喜欢我的分享,觉得有帮助的话,给个赞呗,哈哈。


    本文同步发表于我的个人公众号【小码叨叨】,来听马叨叨的日常叨叨,打消你一切对程序猿的误解。喜欢的朋友可以扫码关注哦~
    这里写图片描述

    展开全文
  • 码农很多,但程序员并不多

    千次阅读 2018-06-12 16:47:01
    原文转载于:https://blog.csdn.net/tTU1EvLDeLFq5btqiK/article/details/80655451本文来自《华为人》,转载请注明出处作者:于志国期间一位驰骋商界多年的老友问:“你现在在华为做什么工作呀?”我很骄傲地说:”...

    原文转载于:https://blog.csdn.net/tTU1EvLDeLFq5btqiK/article/details/80655451

    本文来自《华为人》,转载请注明出处

    作者:于志国



    期间一位驰骋商界多年的老友问:“你现在在华为做什么工作呀?”我很骄傲地说:”系统架构师“,可是他却愣了很久。


    但当我老婆在旁边补上一句“码农“时,老友瞬间秒懂,却把我受伤的心孤独地留在风中凌乱。


    作为与 UNIX 同年代的人,我当初选择计算机专业仅仅是因为抓到什么就学什么罢了。


    本科毕业遇到互联网危机,便没有想法地去读了研,研究生毕业找工作,面试官问为什么要做软件开发。


    答曰:“不给钱都喜欢做的事情,何况还给钱”,从此便踏入了编码这一行,只是从来没想到一做就是十几年。


    但凡一件事情做久了,无论成功与否,都会有一些真切的体验和心得。以前也读过一些工作中如何成功、快乐,诸如马斯洛理论之类的文章。


    也许是因为自己领悟能力比较差,唯一的收获是庆幸自己当初选择了编码作为自己的工作,因为编码天生就具有让人愉悦的工作内容和工作氛围,快乐如影随从。



    1

    编码世界:规则简单有效,粗暴却完美



    从事编码,可以锻炼逻辑思维能力,教会你如何思考。就像学习法律一样,学法律的人未必都是为了成为律师,但法律教会了你一种思维方式。


    同样的,通过编码可以学习到这个世界上最严谨的思维方法。因为在编码的世界里,对错是简单甚至绝对的。


    只要敲下键盘,计算机就会判定孰是孰非,0 或 1,规则简单有效,粗暴却完美。


    从事编码,可以获得持续的创造力。跟写作、绘画、作曲一样,编码也是一种创造性的工作。


    只要有一台计算机,掌握了基本技能后,你便拥有了无限的超能,便能随心所欲地创造出新的东西,丰富和美好这个世界,是不是很棒?


    更酷的是,编码可以品味孤独。除了跟别人交流、学习,程序员大部分时间都是独自在工作,只要双手触摸到键盘,内心顷刻便会变的宁静,多酷呀!


    伴随着键盘清脆的低吟,沉浸在一个人的世界里,跟烟雨蒙蒙天,一杯茶,一个人听着淅淅沥沥的雨声品味孤独,简直有异曲同工之妙,多感性呀!


    能够选择编码作为工作的人,大部分都是喜欢为人处世简简单单的人:这群人有着天真烂漫的好奇心,虽不苟言笑,但却内心火热,善于分享,乐于助人,甚至有时为了解决问题、宁愿不眠不休,却深以为乐……


    跟这样一群简单纯粹的人在一起,我觉得世界上最好的工作氛围,也不过如此。



    2

    程序员的三个境界



    但 IT 时代的膨胀已经让编码工作如同文艺复兴时的印刷匠一样,编码门槛越来越低。


    例如,遍地《一周XX速成》、《20天XX精通》,仿佛会写代码就成了程序员,这让很多人认为从事编码工作就是码农。


    其实,印刷匠很多,成为大师的不多;码农很多,但程序员并不多。程序员不是码农,码农也不是真正的程序员。


    640?wx_fmt=jpeg


    程序员在英文里对应有三个单词:Coder、Programmer 和 Software Engineer。


    我觉得这三个词,生动形象地描述了程序员所需要经历的三个阶段,或者说三个境界:


    • Coder:只要求能够熟练使用编程环境,精通几种编程语言、开发框架和开发库,擅长写代码就可以了。这个阶段的程序员能够按照既定的设计完成编码。

    • Programmer:要求在 Coder 的基础之上,精通设计模式、算法实现和编码技巧,并具备熟练应用的能力,这个阶段的程序员能够独立编码解决现实问题。

    • Software Engineer:要求在掌握业务知识的前提下,理解为什么这么实现,在综合考虑架构实现,权衡开发成本后,为解决业务问题提出最优方案,并能与业务人员顺畅沟通,让业务人员理解方案。


      编码工作达到这个阶段,才能称得上是真正的程序员,才真正实现了从工作到职业的转变。


    不可否认,这个世界上有一些天才的程序员,他们喝着咖啡,哼着歌,便完成了上面三个阶段的修炼。但绝大部分人,都需要为此付出巨大的时间和精力。


    能否成为职业的程序员,影响因素和方法论很多,各种学习类、技术类的总结遍地都是:主动思考、及时总结、制定规划等。但我认为其中最重要的是能否做到专注。


    许多没有达到第三个阶段的程序员,就是因为受到各种因素诱惑,变得心猿意马,不够专注。


    因为不够专注,他们不在意做好自己本职工作,不在意锤炼自己的技能,不在意学习新兴的技术。


    慢慢的,他们会认为从事编码没有出路,进而毫无例外地把编程看成是体力劳动,只会粘贴拷贝代码,知其然而不知其所以然,导致技术停滞不前。


    在这样的状态下工作 5 年、10 年,对于他们来说,没什么区别,程序员真的就是吃青春饭的码农。



    3

    程序员 VS 码农:我们不一样



    要避免程序员变成码农要做到如下几点:


    • 必须对编码保持热情,并持续学习;

    • 必须保持好奇心,乐于探求事物本质;

    • 必须对所做的工作及时总结,主动优化代码,让系统变得更加有机;

    • 必须主动尝试更好的开发方式、更先进的工具,来提升开发效率,并想办法避免重复性的工作;

    • 必须不断改进设计,将编程变成创造性的工作。


    只要通过这样逐步地积累经验和长时间锤炼,知识体系才能构建完备和丰富,才能避免沦落为码农。


    几年前,我曾经重构过一个模块,从外部看模块所在的系统,都是类似这样的,简洁而漂亮:


    640?wx_fmt=jpeg


    但从程序员编码实现的层面看,它实际上是这样的:



    640?wx_fmt=jpeg


    这个设计在最初的版本没有任何问题,使用继承扩展管理对象的接口能力,但仅仅过了两个版本,项目组 PL 说实在撑不下去了。


    增加一个接口,需要修改 200 多个地方,如果再过一个版本,估计要修改 400 多个地方了。


    后来我把它改成这个样子,使用聚合消除了耦合:


    640?wx_fmt=jpeg


    从代码实现层面看,在功能刚开始开发时,这两个设计区别不是很大。


    但随着系统演进、越来越多的功能加入,继承关系带来的耦合会导致模块之间关系越来越复杂。


    牵一发而动全身,终究有一天哪怕只做很小的改动,也将成为压死骆驼的最后一根稻草。


    这次重构的成果是代码量由 43K 减少到 15K,扩展新的接口能力不再需要修改已有代码。我想,这或许就体现了码农和程序员的区别吧。


    CT 是一个业务复杂度极高的行业,要想从码农成长为程序员,需要经历更多的煎熬,需要发挥更多的创造力,同时也意味着,我们比以往任何时候都需要越来越多的码农成长为程序员。


    640?wx_fmt=png


    既然我们选择了编码作为职业,注定会经历各种心劫:枯燥、沮丧、迷茫,甚至浮躁……


    然而无论处于哪种心境当中,我相信,只要想起自己曾经满怀惊奇、兴奋与真诚敲下的那个程序——“Hello,World!”我们就会充满了渴望和力量,因为那是程序员最初的梦想:改变世界。


    展开全文
  • 点击上方“程序人生”,选择“置顶公众号”第一时间关注程序猿(媛)身边的故事16 年大学毕业,在家里玩儿了几个月,最后实在承受不住父母的压力,选择了出去找工作。软件专业毕业,由于在校的成绩一般,实习的工作...
        

    点击上方“程序人生”,选择“置顶公众号”

    第一时间关注程序猿(媛)身边的故事

    640?wx_fmt=jpeg

    16 年大学毕业,在家里玩儿了几个月,最后实在承受不住父母的压力,选择了出去找工作。


    软件专业毕业,由于在校的成绩一般,实习的工作和软件也没有关系,所以四处碰壁。


    在对几家机构进行了对比之后,最终选择了一家,签了协议,在 7 月底的时候进了公司培训。刚开始的时候还是很努力的学习,毕竟是花了钱的,可是后来慢慢发现,即使你再怎么逼迫自己去学习,如果没有兴趣的话,一定是不能学好的。当然,工作如果要找的话还是可以帮你找到的,这个我之后也会提到,一些同学的经历。


    640?wx_fmt=jpeg


    三个多月的培训我就不多赘述,因为培训的是 java,从基础到框架,三个月的时间完完全全的过了一遍,不能说没有学到什么,但是效果可想而知。课程结束,下面就是找工作了,公司会安排老师对你进行简历辅导和模拟面试。


    简历辅导其实就是教你如何制作假简历,很多同学都是毕业多年之后,觉得原来的工作太苦太累又赚不到钱,被培训班所谓的出去就月入 10k 所吸引。月入 10k+确实是有,但是那是有条件的,如果不是技术特别好的,那么学历和专业首先就是敲门砖。


    没有本科学历的话,连推荐工作的机会都很少,所以很多大专的同学,只有给自己的简历上写上两年工作经验、三年工作经验,然后再找一家公司往上面一填,这就是简历辅导。告诫各位正在培训的同学,这是下下策,现在面试都会填一份协议,如果入职后被发现简历造假,那么后果只有自负。


    640?wx_fmt=jpeg


    找工作相比之前还是比较顺利,很快拿到了 offer,去了一家公司做软件开发。可是兴趣这个东西真的很重要,否则的话工作对你来说真的就是煎熬,尤其程序员这种需要经常加班,赶项目进度。做了一年不到的时间,我向公司提了离职。


    后来也和培训班里的同学有一些交流,一个班四十个人,有大概三分之一的人已经不从事软件工作了,剩下的大部分是在外包公司,每天的工作内容也很固定,连加班时间都是固定的。当然也有厉害的,一个数学系的女孩子,面试表现征服了项目经理,在那家公司现在工作的风生水起。可是这样的大神一个培训班能有几个?


    640?wx_fmt=jpeg


    所以我希望大家,不要把培训看的太过简单,也不要觉得自己只要花了钱进去培训,出来就一定可以月入过万,走上人生巅峰,最后靠的还是自己的学习。当然如果有一些同学觉得自己在学校学习的不够好,想找一家好的培训机构系统学习一下,也未尝不可,但是我还是推荐大家,老实找一家公司实习,只要有老师带着写代码,进步也是很快的。


    至于现在的我嘛,由于有一年的开发经验,加上沟通能力不错,现在在一家公司里面做产品经理。没错,程序员的一生之敌,哈哈。虽然现在也经常加班,不过有些乐在其中,至少不像敲代码的时候,生不如死了。希望这篇文章能给大家一些帮助,咱们共同进步。



    你为什么选择当程序员?

    赚得多、因为是所学专业,还是另有原因?


    欢迎投稿吐槽

    征稿要求:

    ①稿件字数以800~1500字左右为宜,多于2000字的文章在手机上阅读起来比较麻烦,少于800字的文章看起来不过瘾;

    ②你有自己拍的适合做文章插图的照片也可一并附上~如果不方便,程序和小七也会帮你配图~

    640?wx_fmt=gif

    加程序人生编辑们的微信,备注#投稿#:


    程序 微信ID:druidlost  

    小七 微信ID:duoshangshuang  


    我们在这里期待你的故事!


    作者简介


    640?wx_fmt=png

    赵仲宇

    非资深程序员,转型中的产品经理。有一天会改变世界~



    点击图片get往期内容

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=png

    640?wx_fmt=gif

    展开全文
  • 程序员之间的笑话,别人不懂!

    万次阅读 2018-06-22 09:25:24
    1、程序猿最烦两件事,第一件事是别人要他给自己的代码写文档,第二件呢?是别人的程序没有留下文档。2、程序猿的读书历程:x语言入门—>x语言应用实践—>x语言高阶编程—>...
  • 作者 |削微寒责编 | 王晓曼出品 | CSDN 博客第一章(推荐看完整篇文章,再回过头看一遍第一章)我非常幸运出生在一个电脑和电子游戏还没有普遍的时代。所以我可以和我的小伙伴们一起玩...
  • 有些人说程序员主要是指写代码的人,而工程师着重在于设计。 有些人说程序员和软件工程师的区别是:软件工程师不但要有编写程序代码的能力而且更重要的是要懂得如何去开发一个软件,怎样去学习实际的UI的观念。 有些...
  • 而不做程序员的理由,一方面,生活品质会受到影响;再者,从我本人的角度来讲,不符合我的工作价值观。首先,编程是一种由成就感来驱动的脑力劳动,一种很容易上瘾的成就感,让人恨不得二十四小时不休息。而其他行业...
  • 我是如何自学成为程序员

    万次阅读 多人点赞 2017-11-22 08:56:40
    目前为止在安卓方面的已经工作了三年左右的时间了,从一个只会写BUG的菜鸟,到现在慢慢发展成了一名程序员。其实说实在的,我学的也一塌糊涂,当然在学习过程也积累了一些知识,对于以前没接触过Android的朋友,或者...
  • 由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,...
  • 程序员为什么千万不要瞎努力?

    万次阅读 多人点赞 2020-03-24 00:33:16
    本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...
  • 程序员到底有多累、多辛苦?

    万次阅读 2017-10-04 22:58:00
    今天逛知乎,看到一贴不错,摘录一下。 大部分人的情况是这样: 代码水平不高的时候,天天加班也干不完,还说其实是喜欢。...随着代码水平的提高,注释写的越来越少,话也越来越少了。...话说得少了,觉得办公室气氛...
  • 520表白网页,程序员浪漫表白

    千次阅读 2020-05-19 21:44:28
    程序员独有的浪漫 喜欢的小姑娘怎么告诉她呢? 嘿嘿嘿,来吧,十一个表白网址随你挑,代码直接拿 谁说程序员不懂浪漫,谁说程序员只会说“多喝热水”。 程序员才是真正的宝藏男孩!!!! 展示网址:点击查看 ...
  • 适合程序员的英文名字

    万次阅读 多人点赞 2019-08-28 14:23:20
    原文链接:http://www.easycharts.club:8443/article/7 点击之后你绝不会后悔!
  • 程序员表白专用程序

    万次下载 热门讨论 2020-07-28 23:33:07
    程序员表白专用
  • LZ今年28岁了,毕业于一个普通的二本院校,工科男,学的是计算机科学与技术,做了三年的软件应用开发,现在做Android开发,越来越感觉到力不从心,很多技术需要从头学起,...
  • 程序员中有多少是党员

    万次阅读 热门讨论 2006-10-31 09:39:00
    目前党员一共有7千多万。非常庞大的人群。...估计现在做程序员的大学里都不爱学习(此为不争事实,当然传说中的高手除外),我认识一朋友就是传说中的党员程序员。大学里连续4年1等奖学金,大1就入党了。
  • 一张程序员人生图,很有意思

    千次阅读 2018-05-30 14:44:30
    在网上看到一张程序员职业规划图
  • 初级、中级、高级程序员的区别在哪里?

    万次阅读 多人点赞 2018-05-14 09:54:21
    低级程序员认为自己与高级程序员的区别, 主要是高级程序员任何功能都能编码实现, 编码速度快, 代码无bug。高级程序员认为他们之所以高级, 在于他们认识到代码 bug 是不可避免的, 有千万种理由可以导致 bug,但他们...
  • 程序员专用壁纸!!!

    万次阅读 2018-04-27 19:46:35
    URL:http://www.jiahengfei.cn/request/img/bgok/bgok.jpgURL:http://www.jiahengfei.cn/request/img/bgok/bgok2.jpgURL:http://www.jiahengfei.cn/request/img/bgok/bgok3.png
1 2 3 4 5 ... 20
收藏数 1,475,156
精华内容 590,062
关键字:

程序员