zoukankan      html  css  js  c++  java
  • 程序员职场思考

    项目开发

    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万都是浮云。。好好爱惜自己的身体吧。

  • 相关阅读:
    新一代MQ apache pulsar的架构与核心概念
    Flutter使用fluwx实现微信分享
    BZOJ3622 已经没有什么好害怕的了 动态规划 容斥原理 组合数学
    NOIP2016提高组Day1T2 天天爱跑步 树链剖分 LCA 倍增 差分
    Codeforces 555C Case of Chocolate 其他
    NOIP2017提高组Day2T3 列队 洛谷P3960 线段树
    NOIP2017提高组Day2T2 宝藏 洛谷P3959 状压dp
    NOIP2017提高组Day1T3 逛公园 洛谷P3953 Tarjan 强连通缩点 SPFA 动态规划 最短路 拓扑序
    Codeforces 873F Forbidden Indices 字符串 SAM/(SA+单调栈)
    Codeforces 873E Awards For Contestants ST表
  • 原文地址:https://www.cnblogs.com/expiator/p/8782923.html
Copyright © 2011-2022 走看看