`
flyfox1982
  • 浏览: 80878 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

年轻程序员如何快速成长

阅读更多

最近公司招聘了一批初级前端工程师,招聘之后就是开始培训和实习指导,培训过程中,思考了一些问题,包括如何更好的培训 指导 以及管理新人。也思索了新人程序员自己应该如何快速成长。

态度是第一位的

态度用于是第一位的,不只是新员工,老员工也是如此。不过对于新员工来说,更加重要。没有好的态度的员工,能力再强,企业也不喜欢。更何况,我很少见到态度不好的员工,有很强的能力的。

首先是要认真

在给新人做培训的时候,就会发现一部分员工很认真的听讲,并及时做笔记,而少数员工则是插着手在哪儿一听而过。为了解决这个问题,我在培训中直接定了规则,每个人都必须要寄笔记,并强制写培训总结。 这样也方便我从员工的培训总结中看出那些人的理解更加到位。当然认真的态度不至于培训阶段,在实际开展工作的时候也非常重要,这其中包括遵循公司的规范。比如写代码应该按照公司确定的好的规范来严格执行;作为的任务自己要认真检查;完成任务之后,需要发邮件;给客户发邮件,需要礼貌用语,并详尽的解释相关的事宜等等,每一个细节,都需要认真对待。

谦虚的态度

所谓谦虚的态度,首先要求大家有空杯心态,特别是一些有一定基础的员工,需要先对自己的认知清零,然后认真的听取培训老师的培训,在实际工作中,要多听取老员工的意见,建议。因为作为新人(至少是绝大多数),你在很多问题上的认知肯定要比老员工差,这个时候,就算你有自己想法,也要认真听取领导或者其他同事意见。就算是工作了很多年的我,现在都保持这个习惯,对于一个问题,我有了自己的想法,或者解决方案,我也会咨询其他人,或许其他人还有更好的解决方案呢。当然你有自己的想法,大胆的发表出来,也是很受欢迎的。谦虚并不代表一味的唯唯诺诺的态度,唯唯诺诺的态度,也不是谦虚,而且也是不受欢迎,对自己发展也不利的。大部分时候,我们希望员工有自己积极思考的态度。

积极的态度

包括几个方面。

  • 第一个,积极做事,工作中积极争取做更多的事情,如此自己能够有更多学习的机会,二来也能够给公司一个更好的印象,公司也便愿意提供更多机会给你;
  • 第二个,积极沟通,沟通能力是一个很重要的能力,对于人的成长技巧重要。后面会专门说道沟通。
  • 第三个,积极思考,遇到问题能够积极主动的思考解决方案,而不是消极等待或者排斥。

勤奋努力的态度

要想获得更快更长足的进步,勤奋努力是必须的,及时对于极有天赋的人。所以一般而言,我都会对新来的员工说:公司虽然不会强制大家加班,但是作为新人,你肯定要做到比别人更加努力,自觉投入更多的时间在学习上面。

变换你的心态

你不是一个学习者,而是一个执行者

对于一些刚毕业的新人来说(或者刚转行到软件行业的人),要意识到,公司招聘员工,是要求员工给公司创造效益的。 所以虽然前面提到新人需要努力的学习来提供自己的能力,但是新人需要意识到,学习不是最终目的,最终目的是为了解决问题,做出成果。 所以,新人要意识到:虽然学习是必要的,但是快速进入工作状态,而非一直处于学习状态,才是一个员工应该有的状态。因为进入公司,你就不在是一个学生。


培养沟通能力

很多程序员忽略沟通能力。认为做程序员,只要能够把代码写好就行。事实远非如此。作为程序员,需要和至少如下人员经常沟通:

  • 设计师 (沟通设计方面)
  • 产品经理或者客户 (沟通需求)
  • 其他程序员(沟通需求、技术、对接等等问题)

如果一个程序员不能很好的和以上人员沟通,很难想象他能够合格的完成任务,跟别说出色了。
那么作为新人应该如何培养自己的沟通能力呢。

好的沟通条件

在我看来,好的沟通一定有如下两个重要的条件:

  • 能够很好的理解别人的意图
  • 很好的表达自己的意图,以便别人能够理解。

积极沟通需求

一般在上司给安排了工作之后。
有的人就开始做了起来,但是实际上,可能需求不是很明确,而不明确的,也不会主动提问沟通。 而有的人会思考需求,然后把自己不明确和上司或者其他同事积极沟通清楚。
积极沟通需求

及时呈现工作成果

在完成一个任务之后,可以通过发邮件,图片,视频或者demo的方式多呈现自己的工作成果。

  • 能够肯定自己的劳动成果
  • 让人了解相关工作进度
  • 另外可以及时的让人看到所做工作的不足。

不要害怕呈现自己的缺陷

有的时候,新人不愿意沟通,是害怕呈现自己的不足。实际上恰恰相反,作为新人,不能害怕呈现自己的不足之处。只有你让别人看到了你不足的地方,才能够很好的帮助你改进,提高。而如果你一味的隐藏自己不懂的业务,技术。很可能,在很长一段时间之后你还是不懂。 一般而言,你的上司可以容忍一个新人刚开始不懂,但是不能容忍在一段时间之后,还有很多东西不懂,比如我就是这样的,最初你不懂,我可以理解,并给予你支持帮助,但是较长时间之后,一些基本的东西你还不懂,我可能就会有看法了。

合理的提问

当然,虽然我鼓励新人多提问,但是还是希望新人提的问题是搞水平的。而不是低质量的问题。一个问题,你需要自己先思考,先查你已知的资料,在此基础上,你在来提问。而不是一开始上来就提问。 另外提问之前要梳理清楚一个任务中的业务 技术点,在此基础上,提出你不懂的部分。 最好不要提出类似 “这个任务我不会,你能教教我吗”。 而最好是这个任务是干什么的,1,2,3 列清楚,然后当前技术 我自己知道了哪些,有几个技术点或者业务点不清楚,需要指导。 要知道,你的上司或者其他同事,可能很忙,不可能什么问题都来和你从新梳理一遍。
另外,你如果希望别人帮你调试解决某个问题,最好是把问题写出一个最小化的demo,让人来帮忙看。

尽快熟悉相关业务

沟通能力并不是单一的“沟通能力”。如果你能够尽快的熟悉公司的业务,那么沟通能力本身也会上升。

锤炼思维能力

调试能力

不会调试的程序员,不能称之为程序员。通过调试,发现数据,程序运行的规律,找到问题所在,并修复问题。可以说,一个程序员的大部分时间都是在调试,如果能很好的掌握调试技巧,将会是你的程序员生涯的巨大障碍。
调试本身也可以调高你思考问题的能力。
所以,学习各种调试技巧和调试思路,势在必行。

善于思考,反思,总结

在遇到问题的时候,需要自己做中总结和反思。 思考自己的解决方式,思维方式。如果遇到一些问题,自己没能解决,而在别人的帮助下解决了,不解要总结改问题的解决方案,还需要总结别人的思维方式。我从小上学数学不错,就是因为自己花了大量时间在这种思考、反思、总结上。遇到自己不会,老师指导了才会的问题,也一定要不断梳理思路,看自己应该如何“顺利”的就能想到这种解决方案。

记录,写文档

当然,如果你能够学习写作,把平时思考、反思、总结下来的东西记录下来,一定更好。写作其实也是一种重要的能力,对于每个人来说都比较重要。 把问题解决方案或者其他思路等记录下来,整理成文档,可以加深自己的记忆,也方便以后遇到类似的问题的查阅,同时还可以分享给他人,帮助别人解决类似问题。
所以写文档是一件当下利益不明显,但是长远利益巨大的事情。

猜测的能力

记得我当年高中的物理课,老师说:物理问题要大胆猜测,小心论证。对于一些问题,我们可能暂时文档 资料欠缺,在这种情况下,我们可能需要能够猜测。根据我们已经有的知识,猜测某个可能性,然后通过某个方式来论证猜测。
比如,以JS为例,我们遇到某个对象的API接口不明朗的时候,我们可以在控制台 遍历出相关的接口函数,然后更加函数名称,猜测某个函数是做什么的,选中我们需要的接口函数。
当然上面的举例只是一种简单的猜测 论证。还有更多复杂的情况。总之,在未知的情况下,不要害怕停止不前,而是多去猜测,尝试。说不定 就能够找到解决方案。
除此之外,在调试问题的时候,猜测问题的可能性也是一种很重要的能力。


提高学习能力

快速学习的能力

对于新人来说,感觉自己要学习的东西很多。这个时候我们在学习的时候要掌握技巧。要有“粗学”和“细学”的能力。对于很多文档或者知识点,先从整体理解,然后大致浏览一遍相关文档。,然后在实际中运用中,遇到相关的的知识点,再去细致的了解。而不是一个知识点一个知识点的细致学习,可能等你学完后面的,前面的已经忘记了。所以在“粗学”的过程中,以下两点比较重要:

  • 对于整体框架一定要有个很好的认识,理解框架的作用,架构思路,编程思想,代码风格。
  • 在“粗学”知识点的时候,以了解该知识点的作用和运用范围为主。

以解决问题为导向

前面提高了快速学习,实际上快速学习要能够真正落实,产生效用。 需要我们以解决问题为导向。遇到一些新手,喜欢看很多书,学习很多知识点,技术点,但是实际动手能力很差。 为什么我遇到一些参加培训的同学,培训出来之后的效果并不会很明显。因为,在培训过程中,你还是着重在学习,而这种学习,可能存在缺陷:

  • 学习的东西可能很快忘记了
  • 并没有提高你解决问题的能力
    我就遇到很多新人特别好学,不管什么技术,都希望自己能够掌握,要去学一学。 以为掌握了很多知识点、技术点就能成长的更加厉害。但是往往事与愿违。学了那么多知识,还是过不好这一生,哦,错了,还是解决不了稍微有点难度的问题。 所以建议新人的学习,应该多以解决问题为导向来学习:
  • 学习你近期工作最需要的相关知识和技术。
  • 培养相关的思考问题的方式,思维、架构能力,而不只是学习知识点。
  • 把工作内容涉及到的相关技术做到极致,而不是浅尝辄止,懂一点点就停止不前。

其他工作外的技术点要不要学,当然要学,多学习可以开阔自己的视野,从而潜移默化的提高你的认知能力和处理问题的思路和能力;但是时间上改如何分配和平衡,需要把握好。

解决问题的技巧

难的问题,80%也是简单的

如果看不清前方的路,那就一步一步走。

在遇到比较难的问题时候,我们往往会束手无策。我遇到一些员工,在遇到稍微难的问题的时候,就不知道如何下手。但是事实上,一个难的问题,可能难的部分只有20%,或者更少的比例。但是我们往往被难的部分给吓住了,然后不敢动手,或者不知道如何下手。其实,我们只要稍微把任务分解下,就会发现,还有很多部分是我们可以下手开始做的,这个时候,应该先忘掉难点的部分,开始着手我们会的部分。在做你会的事情的过程中,可能也发现了难点的解决方案。而即使没有发现难点的解决方案,这个时候也可以拿着你已经做出来的部分,去求助他人的帮助,这样别人在帮助你解决问题的时候也方便。

更多精彩内容,请关注公众号。

 

ITman彪叔公众号
ITman彪叔公众号
0
0
分享到:
评论

相关推荐

    电子商务之价格优化算法:梯度下降:机器学习在价格优化中的角色.docx

    电子商务之价格优化算法:梯度下降:机器学习在价格优化中的角色.docx

    ToadforOracle与Oracle数据库版本兼容性教程.docx

    ToadforOracle与Oracle数据库版本兼容性教程.docx

    browser360-cn-stable-13.3.1016.4-1-amd64.deb

    360浏览器银河麒麟版 for X86 适配兆芯 / 海光 / intel / AMD CPU

    基于React.js和Material-UI个人作品集网站模板(附源码+说明文档).zip

    使用React.js构建,提供多种主题可供选择,并且易于定制。该项目旨在帮助开发者和自由职业者创建自己的个性化投资组合。 主要功能点 多种主题可供选择,包括绿色、黑白、蓝色、红色、橙色、紫色、粉色和黄色 易于定制,可以在src/data文件夹中更新个人信息 包含主页、关于、简历、教育、技能、经验、项目、成就、服务、推荐信、博客和联系等多个部分 支持通过Google表单收集联系信息 提供SEO优化建议 支持多种部署方式,如Netlify、Firebase、Heroku和GitHub Pages 技术栈主要 React.js Material-UI Axios React-fast-marquee React-helmet React-icons React-reveal React-router-dom React-router-hash-link React-slick Slick-carousel Validator

    中小型企业财务管理系统 SSM毕业设计 附带论文.zip

    中小型企业财务管理系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B

    apsw-3.38.5.post1-cp39-cp39-win_amd64.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

    电子商务之价格优化算法:线性回归:价格优化策略实施.docx

    电子商务之价格优化算法:线性回归:价格优化策略实施.docx

    工业数字化转型的关键技术及其应用场景解析

    内容概要:报告详细介绍了企业数字化转型的驱动因素、数字化转型方案分类及其应用场景,重点关注了云计算、超连接、数字孪生、人工智能、分布式账本、增材制造、人机接口、数据共享、工业物联网等关键技术。这些技术不仅支持了企业的运营效率提升和业务模式创新,也为实现更快、更开放、更高效的数字化转型提供了支撑。报告最后提出了企业实施数字化转型的六个步骤。 适合人群:企业高级管理人员、技术人员、咨询顾问,以及对工业数字化转型感兴趣的读者。 使用场景及目标:帮助企业制定和实施数字化转型策略,优化运营模式,提升业务效率,增强市场竞争力。同时,也可作为政府部门、研究机构和行业协会的参考文献。 其他说明:报告中提到的关键技术及其应用场景对企业数字化转型具有重要的指导意义,特别是对于那些希望通过数字化转型实现业务创新和升级的企业。

    基于java的线上选课系统的设计与实现答辩PPT.pptx

    基于java的线上选课系统的设计与实现答辩PPT.pptx

    原版aggdraw-1.3.15-cp311-cp311-win_arm64.whl-下载即用直接pip安装.zip

    安装前的准备 1、安装Python:确保你的计算机上已经安装了Python。你可以在命令行中输入python --version或python3 --version来检查是否已安装以及安装的版本。 个人建议:在anaconda中自建不同python版本的环境,方法如下(其他版本照葫芦画瓢): 比如创建python3.8环境,anaconda命令终端输入:conda create -n py38 python==3.8 2、安装pip:pip是Python的包管理工具,用于安装和管理Python包。你可以通过输入pip --version或pip3 --version来检查pip是否已安装。 安装WHL安装包 1、打开命令行(或打开anaconda命令行终端): 在Windows上,你可以搜索“cmd”或“命令提示符”并打开它。 在macOS或Linux上,你可以打开“终端”。 2、cd到whl文件所在目录安装: 使用cd命令导航到你下载的whl文件所在的文件夹。 终端输入:pip install xxx.whl安装即可(xxx.whl指的是csdn下载解压出来的whl) 3、等待安装完成: 命令行会显示安装进度,并在安装完成后返回提示符。 以上是简单安装介绍,小白也能会,简单好用,从此再也不怕下载安装超时问题。 使用过程遇到问题可以私信,我可以帮你解决! 收起

    电子商务之价格优化算法:贝叶斯定价:贝叶斯网络在电子商务定价中的应用.docx

    电子商务之价格优化算法:贝叶斯定价:贝叶斯网络在电子商务定价中的应用.docx

    IMG_20241105_235746.jpg

    IMG_20241105_235746.jpg

    基于java的毕业设计选题系统答辩PPT.pptx

    基于java的毕业设计选题系统答辩PPT.pptx

    专升本考试资料全套.7z

    专升本考试资料全套.7z

    Trustwave DbProtect:数据库活动监控策略制定.docx

    Trustwave DbProtect:数据库活动监控策略制定.docx

    VB程序实例-CD-ROM开关.zip

    基于VB的程序实例,可供参考学习使用

    课设毕设基于SpringBoot+Vue的教育资源共享平台源码可运行.zip

    本压缩包资源说明,你现在往下拉可以看到压缩包内容目录 我是批量上传的基于SpringBoot+Vue的项目,所以描述都一样;有源码有数据库脚本,系统都是测试过可运行的,看文件名即可区分项目~ |Java|SpringBoot|Vue|前后端分离| 开发语言:Java 框架:SpringBoot,Vue JDK版本:JDK1.8 数据库:MySQL 5.7+(推荐5.7,8.0也可以) 数据库工具:Navicat 开发软件: idea/eclipse(推荐idea) Maven包:Maven3.3.9+ 系统环境:Windows/Mac

    基于Thinkphp5框架的Java插件设计源码

    该源码项目是一款基于Thinkphp5框架的Java插件设计,包含114个文件,其中Java源文件60个,PNG图片32个,XML配置文件7个,GIF图片7个,Git忽略文件1个,LICENSE文件1个,Markdown文件1个,Xmind文件1个,Idea项目文件1个,以及JAR文件1个。

    数据库开发和管理最佳实践.pdf

    数据库开发和管理最佳实践.pdf

    课设毕设基于SpringBoot+Vue的农场投入品运营线上管理系统源码可运行.zip

    本压缩包资源说明,你现在往下拉可以看到压缩包内容目录 我是批量上传的基于SpringBoot+Vue的项目,所以描述都一样;有源码有数据库脚本,系统都是测试过可运行的,看文件名即可区分项目~ |Java|SpringBoot|Vue|前后端分离| 开发语言:Java 框架:SpringBoot,Vue JDK版本:JDK1.8 数据库:MySQL 5.7+(推荐5.7,8.0也可以) 数据库工具:Navicat 开发软件: idea/eclipse(推荐idea) Maven包:Maven3.3.9+ 系统环境:Windows/Mac

Global site tag (gtag.js) - Google Analytics