程序员怎样提高自己-学会提问
大家一定有体会,在一个新项目开始时和客户交流或和Team里讨论新需求、新设计文档时,讨论的组织者会说如果有问题大家一定要提出来。可是开
会的时候总是问题并没有那么多,但是一下来开始设计或编码的时候,觉得好像很多东西都不清楚,问题一下子就全出来了,我们怎么解决这种困惑。换句话说,如
果能有效解决这种问题,自己的能力就会提高一大步。
一般在讨论之前,有一个准备过程,每个人都会拿到自己对应的文档,分析自己这一块存在的问题。从编码人员开始,考虑的总是如何去实现,所有提的
问题都应当为这个目的服务。那么要确保编码的时候没有问题,之前要怎样做呢?自然是在编码之前脑袋里已经编过一次了。这个时候写代码还早,程序的流程走通
就需要其他工具来辅助了,Visio也好,Word也好,UML工具也好,只要顺手的兵器拿来用就行了。这也是我的一个深切体会,从一个新手到一个经验丰
富的人,中间一定要有工具来辅助。人类现在的能力越来越强,从石器时代就明白一个道理,制造工具并利用工具,使能力无限延伸。
首先将流程图画好,Scope画清楚,这时候就开始尝试将内部逻辑走通了。先按照正常流程走一遍,所有的问题都记录下来,再考虑一些异常的情
况,再记录碰到的问题。如果有些详细的东西不够清楚,尽早请教比你清楚的人,并征求他们的意见,很多情况下提不出问题是因为自己对这个不了解。内部逻辑走
通后,再考虑外部和自己模块打交道的模块进出参数的问题,和他们讨论好方案,并有邮件记录最后的结果。当自己认为这里的问题都理清楚了,那将Scope再
扩大一点,其实也是尝试把自己的能力扩大点,多有整体观会给工作上带来很大的好处。
这时候所有Scope的人一起讨论时,就会有一些重要的问题问了。但一个人的思维是有局限性的,也许你想都没想过的问题,在讨论时有人提出来,
那就仔细听,仔细想对策了,如果想不到,问组织者怎么解决。经过几次这样的训练后,就会知道公司的产品关注些什么,哪些问题才需要仔细的解决。也要学会问
一些经典的问题,比如产品的瓶颈在哪里,性能如何等等,如同面试的时候经典问题:你为什么离开上一家公司。
等到这一步熟练后,慢慢将自己的角色和Scope放大,从编码角度,从设计角度,从质量角度,从安全角度,从市场角度等等多考虑。如果哪一天从
每一个角度都能提出很专业的问题,就说明在这个角度的积累深度。我们以前的读书环境并不提倡一天到晚问问题,但工作里不提问题就是和自己过不去,有些问题
可能对专业人士来说是很浅显的,但不知道一定要问到知道为止。也许哪一天和最高级的老大开会的时候,你问问题的全面性以及逻辑的严密性引起了他的兴趣,那
恭喜你,机会来了。
程序员怎样提高自己-驱动你的同事
想像这样一种场景,PM安排一个任务给你,但Scope比较广,涵盖到一些你不了解的技术和从没打过交道的Team。那么完成这个任务就要驱动
其他Team的同事,但你的级别又不是那么高,说的话不一定有人愿意鸟你。那怎么办,和PM的时间都说定了,难道要动用上级资源来协调?这里总结几种我自
己的方法,如果大家觉得有用就不枉此写!
1. 用PM驱动你的方法驱动你的同事
PM怎么驱动你的呢,看看这个谈话:
PM: lake,
有个任务比较急(老大交代任务多数说比较急),你最擅长这方面的东西,所以我们决定让你完成,这里是需求文档,你看多长时间能搞定?
lake: 公司大概能给多长时间?
PM: 20个工作日,你先看看文档估个时间,如果时间太紧我来协调。
lake: 好的,我先看看,今天下班前给你回复。
于是,看文档,定时间:
1)讨论涉及好几个Team,这个花的时间比较多,定5天;
2)开始Design,如果第一步讨论没问题,2天搞定;
3)Design的文档和所有Team开会Review,包括QA
Team。一般两小时,考虑到还有人会提些需要找PM才能解决的问题,加上和PM的确认时间,1.5天;
4)Coding花5天;
5)Unit Test花2天,Integrated Test花1天;
6)QA测试改BUG可能要5天;
这样算算21.5天,还好不算超过太久,看来PM对时间也是评估过的。可是还不能把这个时间预算发给PM,如果发了,其他Team说这个时间不够,到
时候就是自己对PM的承诺过头了。应该给PM回信说明客观情况:
有些Team的时间自己估计不出来,需要开会讨论,让各Team的任务负责人自己估时间。下班前给PM一个最迟的答复期限。
PM在和lake定开发计划的前期,是让lake自己估时间,如果项目中发生一些延期之类的事情,只有硬着头皮,牺牲这20天中的双休来加班
了。但如果时间是没有商量的PM自己定的20天,最后不能按期交付,lake也只能把估计错误的责任丢给PM了。其实就是用了一个人性的优点,遵守诺言。
2. 不要所有的事情都反映到PM那里,要先弄清楚情况
这是风险控制的一个策略,做的过程中有些是可以通过沟通来控制的。比如合作的Team安排是新手做这个,做的质量和进度落后计划,这个就要自己
去和合作的Team协调了,让他们腾出资源来保障。PM不喜欢动不动就去找他解决问题的人,PM这个时候就是老板的心态:只要结果,过程中他参与的越少越
好。但有些不可控的事情是一定要尽早找PM解决的,比如说有人跑路了。
3. 记得感谢别人
当任务按时完成后,做的好的PM会发信给所有参与的人感谢大家的努力。但我们国内的公司好像很少有这种氛围的,感谢别人的话好像总是难说出口。
老板都一个观点,给你钱你就应该做事情,天经地义,难道还要我感谢你?
但很多外企的文化就有这一部分,我还记得第一次因为一个小的功能添加,不到十行代码搞定的事情,做完后PM发信感谢我的努力时的感觉。所以有机
会就感谢帮助过你的人,当面说也许有时候不太好意思,发个邮件总是可以的。QQ聊天的时候对MM需要厚脸皮才能说出来的话都一溜打出来了,发个邮件应该是
非常Easy的事情。
知道这些方法的人是很多的,就算以前不知道看过这个也知道了,如果被别人用这种方式驱动,那就积极配合,毕竟解决问题才是最好的结果,助人为快
乐之本嘛!
分享到:
相关推荐
标题中的“高薪程序员必备刷题软件-u-boot.neo4:NanoPineo4u-boot...通过以上这些知识点的学习和实践,程序员不仅可以提高自己的技术水平,还有助于在面试或工作中解决实际问题,从而提升竞争力,实现高薪就业的目标。
通过阅读这本书并深入理解其中的问题,程序员可以更全面地展示自己的能力,提升成功获得心仪职位的概率。在准备面试的过程中,程序员应该将这本书中的知识点和技巧与自己的实际经验相结合,形成一套适合自己的面试...
- **提问策略**:准备好一些问题,展示自己对公司和职位的兴趣。 #### 四、操作篇:执行跳槽计划 ##### 1. 策略选择 - **主动出击**:通过社交媒体、职业社交平台等渠道主动接触潜在雇主。 - **内部推荐**:利用...
在探讨编程问题提问的智慧时,首先需要...一个好的提问者,不仅能够得到自己需要的答案,更能够通过提问的过程提高自己的技术水平和解决问题的能力。因此,提问的智慧不仅关乎获取信息,也是个人成长和学习的重要途径。
【描述】:“高薪程序员必备刷题软件”通常指的是用于提升技能、熟悉特定技术或准备面试的软件工具。在这个场景下,NUC970_U-Boot是与NUC970系列微处理器相关的Bootloader开发项目,它对深入理解和调试嵌入式系统...
通过以上这些策略,程序员不仅可以提升自己的技术能力,还能增强职场竞争力,逐步实现职位晋升。记住,德才兼备是在职场上获得认可的关键,同时保持谦逊和开放的心态,不断学习和成长,才能在程序员的道路上走得更远...
- 学会将复杂任务拆解为更小的子任务,有助于更好地管理时间和资源,提高工作效率。 - 了解团队成员的专业特长,合理分配任务,让每个人都能发挥其优势。 8. **学习与成长**: - 不断学习新技能,如A君学习JSTL...
亲爱的未来程序员, 你好!当你打开这封信的时候,或许你正站在计算机科学的门槛上,跃跃欲试却又带着几分迷茫。你的旅程即将开始,我在这里,作为一名老程序员,向你分享一些宝贵的建议,希望它们能够助你一臂之力...
- 在公司,作者积极参与技术研讨,与团队中的资深程序员建立良好的关系,通过不断提问和学习,提升了技术水平。他学会了如何打破思维定势,适时休息和调整,以解决复杂的技术问题。 - 阅读《代码重构》和《设计...
### 49个决定程序员成败的人生细节 #### 细节的重要性 在当今社会,无论是职场还是日常生活,细节往往能够决定一个人的成功与否。正如标题“程序员谨记”所提示的那样,对于程序员而言,掌握并实践这些细节尤为...
### 如何成为一个优秀的程序员 #### 一、个人技能 **1. 学会Debug** - **如何分离问题debug:** - 分解问题到最小可重复执行的部分。 - 使用二分法查找错误来源。 - 确保每次只改变一处。 - **如何移除错误:*...
因此,程序员需要学会适应这些变化,而不是抗拒它们。灵活应对变化能够更好地满足客户需求。 #### 11. 不断学习 技术更新换代迅速,程序员必须保持学习的状态,掌握最新的技术和工具。持续学习不仅能够提高专业...
9. **社区参与**:Stack Overflow、GitHub等平台是程序员交流和求助的重要场所,积极参与讨论,提问和回答问题,能提升自己的问题解决能力。 10. **代码审查**:通过他人的代码审查,可以发现自己的盲点,提高编程...
1. **沟通的秘密**:强调了有效沟通在职场中的重要性,包括学会提问和保持良好沟通,这对于团队协作和项目管理至关重要。 2. **正确的坚持**:教导如何在面对困难时保持正确的职业态度,坚持个人的价值观和专业信念...
《编程新手真言》是一本面向初入编程领域的学习者的指南,旨在帮助新手程序员避开常见误区,提升编程技能。PDF格式使得这本书易于在线阅读和下载,方便编程爱好者随时随地学习。以下将从标题、描述和标签中提取出的...
### 程序员面试常犯的十个错误详解 #### 错误一:仅限于电脑上练习 ...通过避免上述常见错误,并采取相应的改进措施,程序员可以在面试过程中更好地展示自己的技术和职业素养,提高获得理想职位的机会。
内向的程序员应学会在面试中展现自信,保持眼神交流,清晰表达观点。即使遇到不会的问题,坦诚承认并表达学习意愿,要比试图掩饰更受面试官欣赏。 接下来,我们将探讨**面试过程中的策略**: 1. **自我介绍**要...