美文网首页
我与编程的孽缘与感悟

我与编程的孽缘与感悟

作者: 吾未忘许汝之诺 | 来源:发表于2020-01-11 23:23 被阅读0次

       前言

        很三年前,当高考最后一科:生物科目的收卷铃声响起的时候。伴随着的是教学楼外一片嘈杂的呼喊声突然鼎沸,当时我的脑中一片空白——结束了?我的高中生涯,一段充满着压抑与激情的高中生涯,在铃声停止的那一刻结束了。

        随着我的高中生涯的结束,在我彷徨我以后的路该怎么走的时候。一次意外让我选择了接触互联网行业,以下是我们了一些前辈和我自身的体会写的话语,希望对那些和当时的我一样感到迷茫的年轻人有点帮助。

    一、与互联网及编程的邂逅

        随着我的高中生涯结束,在放假期间,迷茫的我打了安保兼职,传单兼职,当过志愿者。也认识了很多人,其中也包括已经上了大学的大学生。恰巧我和其中一位985大四的志愿者一来二去相熟畅聊(当时参加的是科技会展志愿者),他让我更多的了解互联网的魅力。互联网至关重要的作用,极大的改善了我们身边的生活方式,他也讲了一些互联网的由来及编程与互联网的关系。让我对编程产生了极大的兴趣。

    二、我与编程的孽缘

        自从那次支援者活动后,我对编程产生了兴趣。开始在网上查询关于编程的资料,当时让我感到困惑的是,网络有大部分的编程材料和视频教学。但是规范化的学习路线没有明确的指出。在论坛上你一言我一语的留言,往往涉及的都是学好基础的编程语言,让我第一次接触到的编程语言是C语言,当时玩电脑的时候,我想每个小伙伴都会每次关机的时候感到厌倦,因为还要去选择关机,我想的是能不能只要点一个程序就可以让他直接关机。所以我接触了C语言,C语言中常常涉及指针和内存的调用。慢慢摸索,终于摸索出了在C语言中可以利用system方法调用shutdown命令+-t 0关机延迟时间随后进行编译,生成exe程序,每当要关机的时候就可以直接单点这个程序及直接关机。这一次让我兴趣极浓,期间也发生过程序崩溃,编译错误让我崩溃甚至放弃编程的想法。

        崩溃的想法少于我对于编程的兴趣,让我选择了与编程相关的软件工程专业。现在一转眼,我已不是那一个刚入大学校园的大一新生,每一年总是会有大四的学生对自己的大学生涯感慨,就像高考完后的高三学生对自己的感慨一样。但是相比较于高三的学生,我们多的是一份对于工作的迷茫。下面是我最近几个月讨教了许多互联网前辈和一些同学结合我自己的感悟总结给现在迷茫困惑的大四的你。

    二、要结合自身总结互联网行业背景

        总结自己的行业背景是非常重要的,特别是对于我们这些处于高新技术行业;迭代速度太快,学习节奏不能慢下来。比如工作3年后必须确定自己的行业背景,比如一直从事电信行业,一直从事银行项目,一直从事ERP行业等等。 以为前辈曾说一个程序员不可能是一直写代码的,他时常为那些想写一辈子业务逻辑代码的程序员感到悲哀;俗话说隔行如隔山,每个行业的业务都不一样,甚至差别很大,比如你一直从事流媒体的研究,让你跳槽到一家银行项目,完了,一切从头学吧,以前的行业经验都用不上了;虽然一个公司公司招人,就是希望找到那些很容易上手,不需要培训业务很久的程序员;但是对于那些频繁跳槽的程序员,大部分公司是很讨厌频繁跳槽的程序员。虽然你能完成他们的工作任务,而公司对留住你的信心却微乎其微,所以为了避免导致项目做到一半你就走人而导致项目搁浅,或者一个项目做完,再重新招人又会耗费时间和财力,这是大部分中小企业所担心的问题。所以这些企业情愿找一个安慰的程序员,即使他的能力有一点瑕疵。

        当然一直在一个行业呆久了,就可以成为这个行业的专家;我们可以经常看到,一个项目组的某个leader,代码写的一般,但是却可以跟客户流畅的沟通,控制着新需求的提出,bug的修正等等;而客户也很愿意跟他打交道,因为那些老的项目只有他能维护,他甚至熟悉系统的每一张表结构。

    三、自定合理的职业规划

            一个程序员怎么自定自己的职业规划。为此你要先自身先问自己几个问题:

        (1)你工作几年了,你愿意一直和新入行的新手一样就是个简单的程序员吗?

        (2)你愿意一直写代码,而不关心其他吗?

        (3)一个项目的前期需求,设计,后期部署维护,领导找到你,你说咱搞不定,行吗?

           每一位程序员都不是为成为写代码的机器而产出的。刚入行第一年你会有很多不懂,这时候的你可以听从老大的安排,敲敲代码,看看数据库,测试自己和别人的代码,闲暇的时候看一些开源项目的源代码;第二年,你还是这样可以吗?不可能的,即使你想一直这样,但是一年的经验你完全可以入行了,公司也不会允许浪费去纵容一个已经有了一年工作经验的程序员,如果这时候你还没入行,你应该找一找自身的问题,到底你在哪一步出了问题,你是否还热爱这个行业?否则你是时候该学习怎么进行需求分析,怎么设计数据库,怎么写各类文档,怎么写更好的代码?这些都是对于高级程序员的基本要求。

    四、做程序员要谦虚

        在某些公司不乏存有认为写业务代码一样可以很牛逼的程序员,理由是业务代码一样可以有各种技巧,例如可以使用封装和抽象使得业务代码更具可扩展性,可以通过和产品多交流以便更好的理解和实现业务,日志记录好了问题定位效率可以提升10倍等等。

        业务代码一样有技术含量,这点是肯定的,业务代码中的技术是每个程序员的基础,但只是掌握了这些技巧,并不能成为技术大牛,就像你玩LOL排位等级一样,开始打几把,遇到的都是和你一样的队友或者敌人。/你可以轻松的赢下这几场游戏,段位升级。但是越到后面你为了避免遇到让你生气的队友,你必须要学会独当一面,能一打三,四,五。这样你才能更好的段位升级。成为技术大牛的路也是类似的,你要不断的提升自己的水平,然后面临更大的挑战,通过应对这些挑战从而使自己水平更上一级,然后如此往复,最终达到技术大牛甚至业界大牛的境界,写业务代码只是这个前期的一个挑战而已

       永远记住:连业务代码都写不好的程序员成不了技术大牛,而业务代码写的好的程序员也成为不了技术大牛。

    五、要做的比你的Leader给你的任务还要多。

        要想鹤立鸡群,最快的办法就是你要做的比别人都要好和做的比别人做的还要多

        这里建议几个方法:

        (1)你要尽快熟悉Leader给你的业务,并且还要了解更多其他不管是不是你负责的业务;在公司或者论坛了解更多的代码。

        需求分析的时候更加准确,能够在需求阶段就识别风险、影响、难点

        问题处理的时候更加快速,因为相关的业务和代码都熟悉,能够快速的判断问题可能的原因并进行排查处理

        方案设计的时候考虑更加周全,由于有对全局业务的理解,能够设计出更好的方案

        2)熟悉端到端

        例如你负责web后台开发,但实际上用户发起一个http请求,要经过很多中间步骤才到你的服务器(例如浏览器缓存、DNS、nginx等),服务器一般又会经过很多处理才到你写的那部分代码(路由、权限等)这整个流程中的很多系统或者步骤,绝大部分人是不可能去参与写代码的,但掌握了这些知识对你的综合水平有很大作用,例如方案设计、线上故障处理这些更加有含金量的技术工作都需要综合技术水平。

        “系统性”、“全局性”、“综合性”这些字眼看起来比较虚,但其实都是技术大牛的必备的素质,要达到这样的境界,必须去熟悉更多系统、业务、代码。

        3)自学

        一般在比较成熟的团队,由于框架或者组件已经进行了大量的封装,写业务代码所用到的技术确实也比较少,但我们要明白“唯一不变的只有变化”,框架有可能要改进,组件可能要替换,或者你换了一家公司,新公司既没有组件也没有框架,要你从头开始来做。这些都是机会,也是挑战,而机会和挑战只会分配给有准备的人,所以这种情况下我们更加需要自学更多东西,因为真正等到要用的时候再来学已经没有时间了。

    六、别让上班或者上课成了没时间学习的借口

        在现在的中国互联网大环境下,如果你把工作忙,或者上课没时间当成了你没时间的借口。那么我只能遗憾的告诉你,你一两年后你将会被这个行业所淘汰。要学会将碎片化的时间组织起来,与一些没有意义的社交隔离。学会在工作中学习和提升,因为学以致用或者有实例参考,学习的效果是最好的;其次工作后学习不需要大段时间,而是要挤出时间,利用时间碎片来学习。

    相关文章

      网友评论

          本文标题:我与编程的孽缘与感悟

          本文链接:https://www.haomeiwen.com/subject/wbwbactx.html