• 程序员职场思考


    项目开发

    1.每天工作前,列出一个任务清单taskList。包含To Do事项。

    2.效率非常重要。而专注力是效率的关键。集中精神,效率才会高。

    3.别急着写代码。先做好设计。一个好的设计(数据库设计、接口设计等待)会事半功倍

    4.项目比较紧的时候,加班加点,一定要学会放松心情。压力太大,影响身心健康。

    5.出活非常重要,很多时候领导并不关心细节,他们只想要结果。。

    6.估算模块的开发时间时,可以适量放宽时间。比如说自己觉得两天能搞定,最好说四天能搞定。

    很多时候会遇到一些奇怪的bug,需要花较多的时间才能解决。。

    7.多总结一下开发中遇到的问题,才能更好地提高水平。

    8.遇到一项新技术,不要马上说"我不会",不会可以学啊。

    9.优化,优化,优化。。哪怕是简单的业务代码,也可以思考如何优化,提高性能。

    10.细心一点,有时候,bug就是因为一时粗心,写少写多写错几个符号。。就要花费几倍的时间debug。

    11.一个项目完整流程,从项目立项、需求评审、可行性分析、系统设计分析、开发自测、测试、验证到最后的上线

    12.对于技术型工程师来说,一般分两种方向,第一种是业务方向的工程师,就是要开发业务逻辑的程序猿,主要负责写一些业务上的代码,完成产品和业务方的需求,当然这中间也会运用到各种各样的技术,但是主要用技术去解决业务场景下所碰到的问题;另一种是研究中间件的工程师,专门研发一些工具给业务的开发工程师,他们会在更专业、更抽象的角度去解决目前开发所碰到的问题。后者的技术要求可能会比前者高一些,但是业务也是非常重要的。

    13.有些互联网公司实行 996 制度,工作强度太大。加班多,工作效率不一定高。珍爱生命,远离加班。

    14.最好多写单元测试。良好的单元测试,能够减少bug,提高效率。

    15.不要逃避问题,不要害怕bug,当你开始编程时,就会遇到无数的bug。

    17.多和其他同事沟通,了解他们所做的模块,遇到的问题。

    18.番茄工作法,工作一小时,休息五分钟。

    工作能力

    0.程序员最重要的就是解决问题的能力。而不是对某一个框架或技术的了解。

    1.技术方面的能力,包括编程能力、调试能力、性能优化、架构能力。

    除了技术,还有很多方面也很重要。业务能力、沟通能力、管理能力等等。

    2.工作年龄不代表工作能力,任何技术工种都有干了很久技术很差的人。
    3.最主要是氛围、环境。一群志同道合的人一起交流讨论,方能事半功倍。

    4.专注于最终的目标,不要为了修灯泡而造汽车。

    5.掌握一项技术,程序员不应该只是简单地了解,一笔带过,只能够讲五分钟的表面技术。而应该深入地理解原理,侃侃而谈。

    6.遇到不懂的问题,要思考,要先尝试独立解决。

    如果有问题,自己思考了一两个小时还是无法解决,那就要及时向同事求助。求助时,要给出自己的方案和思路。

    7.工作肯定会碰到很多问题,需要不断去问别人。但是不要在别人忙碌的时候去烦人,提问问题前自己要先做好准备。

    先过滤白痴问题,比如上网一查就知道的问题;其次,每个问题先自己想至少两种方案,然后把问题和自己想到的方案拿过去去让别人帮我看,是不是合适。
    8.偶尔没有达成目标也不要气馁,因为人不是机器,都是会懈怠的。你只需要知道,你需要战胜的是昨天的自己,过去的自己,而不是其他任何人。
    职场就是长跑,跑慢点无所谓,但不代表我们中途可以停下来。

    9.重复的工作,利用技术进行自动化。多思考,通过技术去解决实际问题。

    10.不要畏惧困难,如果总是做简单的事情,是不会有进步的。在解决困难问题的过程中,才会得到更大的提高。

    11.工作就是要出活,及时地完成任务并交付。

    12.工作是以结果为导向的,但是人生并不是。就算工作不顺利,也要学会享受人生的过程。

    技术

    1.技术的变化是非常快的,得时刻紧跟趋势。趋势一旦已经确定,那些守旧的人面临的竞争压力会非常大,甚至会被淘汰,当年那些往swing、flash开发方面发展的,后来的处境可想而知。

    那么趋势怎么判断呢?就是靠那些顶级科技公司的动作、看各行业大神们的动作来判断的,当然这些巨头与大神们也有看错的时候,但是我相信总比以自己的喜好来判断趋势更靠谱的多,我宁愿相信他们。比如现在很多大公司都开始使用Docker容器,K8s等,可以紧跟大公司的步伐。

    2.精通一个淘汰的技术对你没有任何价值。学习的精力有限,更应该花在值得学的技术上。比如网络、操作系统、数据结构、算法,这些东西哪怕十年后还是有用的。

    3.一个人的技术提升速度主要和 踩坑率(踩坑数量除以天数)、平均加班时间 、 身边牛人的数量 这三点成正比。

    4.技术如何突破瓶颈?

       a.根基; b.不宽松又不紧张的环境;c.独立思考

       d.正宗的学习资料,从入门教程(Tutorial),简单示例(Demo),接口类(API Reference),官网文献及完整的系统知识(Spec)

    5.项目驱动型的学习方法

    学习一段时间,做个小项目,将做项目遇到的问题记下来,针对性地学习相关知识,然后再实践,再学一段时间理论,让知识成网状发射状地变大。

    当然,项目驱动式学习有一个弊端,就是每次学习的知识都是项目所需要的,很零碎、不成体系。

    所以需要改良,即在采取项目驱动学习法的时候每天抽一段时间去完整地读一本书,或者一个相关问题的完整介绍,这样就很容易把一些知识成体系地串起来。

    这样一段时间下来,慢慢的,你就知道我们为什么要学那么多科目,学这些科目能干什么。

    6.问题驱动型的学习方法

    带着问题去看书,去学习。如果功利一点,也可以带着面试题的疑问去看书。

    7.个人驱动型的学习方法

    明确的目标,何时何地要完成什么目标。比如,三年后,加入一家互联网或者金融科技公司,非996,月薪20k。

    职业生涯

    1.工作选择上,可能涉及的因素有:(1) 行业/公司前景、(2) 薪酬福利、(3) 工作环境、(4) 工作内容、(5) 老板/同事关系、(6) 是否是核心部门、(7) 是否是在大城市、(8) 离家远近

    程序员找工作应该优先考虑:薪酬、技术、行业、项目。

    2.平时除了钻研技术,还要多关注行业、公司、产品、业务等。

    比如,行业的营利模式,整体流程,上下游,相关的产业链。

    当前公司的商业模式,组织架构,发展战略,以及其他公司的相关情况。

    3.一个优秀的程序员,应该具备:技术思维、工程思维、产品思维、业务思维。

    平常多思考,多去了解业务,多读一些关于产品的书。

    2.行业背景非常重要;工作3年后必须确定自己的行业背景,比如一直从事电信行业,一直从事银行项目,一直从事ERP行业等等。
    一个程序员不可能是一直写代码的,就是写代码也要知道业务逻辑,满足什么需求;俗话说隔行如隔山,每个行业的业务都不一样,甚至差别很大,比如你一直从事流媒体的研究,让你跳槽到一家银行项目,完了,一切从头学吧,以前的行业经验都用不上了;而且,一个公司公司招人,就是希望找到那些很容易上手,不需要培训业务很久的程序员;频繁跳槽的朋友,一定要注意这点;一直在一个行业呆久了,就可以成为这个行业的专家;我们可以经常看到,一个项目组的某个leader,代码写的一般,但是却可以跟客户流畅的沟通,控制着新需求的提出,bug的修正等等;而客户也很愿意跟他打交道,因为那些老的项目只有他能维护,他甚至熟悉系统的每一张表结构——-可想在这个行业呆的时间有多久啦。

    4.哪怕是加入了知名公司,也得明白耀眼的是公司,并不是自己。要时刻提高自己的能力。

    公司要抛弃你时,可能你上午还在干活,下午就得滚蛋了。只有不断地提高竞争力,才不会被淘汰。

    5.IT行业的人最好定期更新简历,然后面试一圈,一则看是否有更好的机会,二则了解市场行情与技术动向,也作为自己下一年努力的方向。

    6.如果你曾经在一轮技术面试之后感觉糟糕,如果你曾经感觉你彻底失败,是个废物,不该获得任何职位,只想住到远离计算机、技术和那些让你产生这种情绪的招聘流程的话。我想说,你并不是一个人。

    学习

    0.向优秀的人学习。包括学习方法、技术思维、解决问题的思路等待。

    向优秀的人请教。有时候,大神一指点,就能解开你苦思冥想也未能明了的困惑。

    1.时刻保持好奇心,兴趣,热情。

    2.多关注最新的技术,互联网新闻。

    3.思考互联网、公司、产品、运营等。每天web上网,或者使用app时,多思考功能的实现、产品的设计。

    4.每天都要学习。哪怕是国庆节、中秋节、春节,也要坚持学习。每天持续地积累,才能够沉淀。

    5.多读一些行业内的大师作品。不管是技术方面,还是经验、知识方面。

    6.可以多读一些人文方面的书。

    7.学习的精力有限,更应该花在重点上。精通一个淘汰的技术对你没有任何价值。

    比如,学习java时,没必要花太多时间去学swing。

    8.集中精神。明确目标。比如今天想学习多线程,那就集中精力研究,不要左右折腾。

    9.对于知识要不断的总结,记录成笔记,看了好多遍还记不下来,不理解那就去多写,多画,能清晰透彻的将知识讲给别人,这才算是理解的一个基本层次。

    10.不经过大量实践的学习是低效的。

    11.学习永远没有错,错的是选择了低效耗时耗精力的前进方向。

    12.坚持刻意学习。不断反馈纠错。自我测试。主动学习。跳出舒适区。多复习加强记忆。

    沟通

    1.需求经常会改变。一定要及时沟通。埋头苦干可能只是无用功,一定要先理清需求。

    2.沟通时,可以说话,也可以写字、画图。有时,一图胜千言。

    3.多和同事沟通,了解别人负责的模块,提高对项目的整体认知。

    4.跳出圈子,多接触别的圈子,最好是比你层次高的圈子,那最好不过了,你的思维与认知会在不知不觉中发生变化。
    如果你是程序员,没事多跟公司的产品经理、设计师们聊聊,多接触下外面更多、更牛的圈子,那你就很容易跳出这种思维的定式,你所看到的,你所想到的,可能都会大不一样。

    为人处世

    1.每个人都有自己擅长的技能或熟悉的知识,多向他人学习。

    2.有时候即使你是对的,态度不好的话,别人也不会接受。

    健康

    0.身有一疾,如负债千万。

    1.身体是最重要的。健康无价。

    2.程序员的职业病,颈椎病。平常要注意坐姿,坐直一点。少低头玩手机。坐一两小时就多起来走走。

    3.不要秃头。不要秃头。工作焦虑的时候,可以想象一下自己秃头的样子,适当给自己减压。

     4.当你的身体不舒服,总是得去医院的时候,什么月薪2万,3万都是浮云。。好好爱惜自己的身体吧。

  • 相关阅读:
    [LeetCode] Range Sum Query
    [LeetCode] Longest Increasing Subsequence
    [LeetCode] Bulls and Cows
    [LeetCode] Serialize and Deserialize Binary Tree
    [LeetCode] Find Median from Data Stream
    [LeetCode] Convert Sorted List to Binary Search Tree
    [LeetCode] Nim Game
    [LeetCode] Word Pattern
    安装配置说明与注意
    java.lang.OutOfMemoryError: PermGen space及其解决方法
  • 原文地址:https://www.cnblogs.com/expiator/p/8782923.html
Copyright © 2020-2023  润新知