我最开始不是做软件开发的,是一个售后技术支持工程师,你懂的,就是公司卖出的设备坏了,我就到现场去鼓捣两下,换个零件,重启下系统什么的。后来 我转行做软件开发,颇经历了一些曲折,遇到了很多实际的困难,再后来我成了程序员,干上了手艺活儿,就这么一路过来了,还出了两本书,《Qt on Android核心编程》和《Qt Quick核心编程》。
后来我也和一些刚入行的开发人员共事过,有的朋友可以很快度过适应期,有的朋友则会花费比较长的时间,遇到各种不那么酸爽的事儿。你知道,我是一个 爱瞎琢磨的程序员,根据我的个人经验和我观察别人的结果,我发现,如果一个新手可以坚持并实践这么几点,就能够很快从青涩变成熟,完成最初的角色转变,融 入到让你欢喜让你忧的软件开发工作中来。
接纳自己是一张白纸这个事实
我觉得这是一个首要的前提。也许你很优秀,有很强的学习能力,有强大的信念,有超强的小宇宙,有百折不挠的韧性……但是,你没做过,你确实是一张白 纸。这是一个客观事实,我们必须要要承认。我们所做的一切,都是在接纳现实的前提下展开的,唯有承认这一点,其它美好的事情才有可能。
我们平静的看待这一点,不要妄自菲薄,也不要好高骛远,从一条线开始,慢慢绘制自己的蓝图,一切可能就会慢慢变成现实。
关注自己能做到什么
我们是一张白纸,但我们还是可以做很多事情,我们通过学习,将能做更多事情。我们会遇到各种各样的问题,会产生自己这个不会、那个不会,可能安装一个IDE都会出问题,可能三行代码都会遇到10个编译错误,可能Run起来你不知道结果是对是错是否符合预期……这都没关系。
我们要看自己今天做到了什么,明天又能做到什么,一周后能做到什么,一月后能做到什么。我们关注积极的方面,不要因为各种挫败而将自己陷在不良情绪 的泥潭里,自怨自艾、自我否定、羡慕嫉妒恨、失望、沮丧……这些情绪都是我们的敌人,都是有不良居心的魔鬼,它们只会坏我们的事儿。我们要逃离它们,不给 它们机会,我们的对策就是,看我能做什么,看我将来能做什么,看我需要做哪些事情才可以达到明天、下一周、下一个月的目标。这样我们就能积极行动起来,就 会把时间花在有价值的地方,我们也会慢慢更有价值。
如饥似渴地学习
我们是一张白纸,就要如饥似渴地学习,抓住一切机会学习,读书,求人,读代码,上班8小时,下班还有更多时间,我们可以把一切可以利用的时间都投入到相关知识和技能的学习中来。
当你连一个DEMO都不知道如何创建,当你连一个Hello World都跑步起来,当你弄不懂变量、操作符、函数、对象、类、实例、控制语句,当你不知道那些被老手们当做常识的递归、链表、单例、观察者、MVC、 CRUD、RBAC……你唯一能做的,就是把自己变成一块干燥的海绵,持续不断地去吸收各种知识。
这个过程是快乐的,幸福的,你会发现随着你掌握的知识越来越多,随着你能解决的问题越来越多,你会发现今天的自己和昨天的自己不同,这个月的自己和上个月的自己不同,每一天、每一周、每一月都是一种惊喜。就让自己变成一个小孩,收获简单的快乐。
别怕犯错
很多新手怕犯错,其实不必。犯错不等于失败,犯错也是一种学习。
我们不必担心别人因为自己犯错而看轻自己,要知道,此时此刻我就是一张白纸啊,我没有经验啊,我什么都不会啊,我不犯错才是奇怪的事情。
就像小孩子蹒跚学步,跌倒是很正常的事情。可是它会在跌倒中收获宝贵的经验,摔几次,摔几天,它就学会了。
犯错一点儿也不可怕,可怕的是不总结、不归纳、不吸取教训。
迎难而上
我遇到一些新入行的朋友,面对一个任务时会畏缩,说这个我不会啊,说这个我从来没弄过啊,说我搞不定啊……
当然会遇到困难!作为新手,你遇不到困难才是见了鬼呢。要把困难当做机会,只有做你眼下搞不定的事情,你才能提升,你明天才能搞定更多的烂事儿。
所以,要迎难而上,把困难当做猎物,当做锻炼的机会,要见猎心喜,用于挑战自己。
记录问题和心得
我觉得这一点非常重要。在初始阶段,记录遇到的问题,记录学习心得,总结解决问题的经验,将会对我们后来的进步提供非常大的帮助。我们要模仿牛的反刍,不断从有限的实践经验中总结、消化,获得更多的营养。
同时这也会帮助我们养成良好的工作习惯,良好的习惯,会让我们终身受益。
适时求助
有些人喜欢闷头黑搞,搞不定也吭声,要么把困难扔在那里不管,自己也停在那里,要么继续黑搞,东搞搞西搞搞始终搞不定,停在那里。
我觉得应该给自己设定一个期限,在期限到达时还搞不定,就向别人求助。
向别人求助是正常的事情,每个人都可能会求助别人,一个人不可能搞定所有事情。不要担心别人太忙没时间帮你,也不要担心欠别人的人情。要知道“帮助 别人”这件事本身,就是一件快乐的事。在帮助别人的过程中,提供帮助的人会收获快乐。多数程序员都很乐意帮助别人。真的。你获得了帮助,你在遇到别人的求 助时也乐于提供帮助,这就够了。别的不用想太多。
提前告知上级你真的不能搞定
没错。就是这样,一旦你经过了种种努力,确信自己不能搞定手头的事情,一定要尽早告知你的上级和小伙伴。
一个软件项目的周期,通常是由最晚结束的那个任务决定。
假如你是一个新手,碰巧Take了一个任务,你当然不希望自己的任务是最晚结束的那个。可实际情况表明,你有很高几率扮演那个角色。我要说的是,你 需要清楚判断自己手上的任务的状况,如果你真的不可能搞定(或者不可能按期搞定),一定要提前告知你的上级,把你的状况、任务的状况都说明白,这样你的上 级才可能有时间做必要的调整(比如分配新的资源、延长时间等)来应对可能的项目延期。如果你在最后一刻才告诉别人,那就没有补救的机会了。真的。
别担心别人看轻你,即便经验丰富的优秀程序员,也会碰到搞不定的事情。软件开发的性质就是如此,永远会有超越你能力边界的问题蹦出来。这很正常的,让别人知道,让大家能想办法补救,这就是很好的措施。
向优秀的同伴学习
三人行必有我师。
想让自己变优秀的一个好办法就是和优秀的人走在一起。
你一定要知道(自己观察、别人告诉你、上级告诉你)你所在的团队中的哪些程序员在哪方面比较优秀,比如张三代码简洁能自解释,比如李四设计能力强, 比如王五总能搞定技术难题,比如赵六具有卓越的影响力,比如钱八善于分析问题,比如赵十能深入浅出的讲解技术问题,诸如此类,如果你能够清楚,一方面可以 在自己遇到问题时向正确的人求助,另一方面,你也可以主动学习。
见贤思齐,自古就是这个道理。有时很多变化是在潜移默化中发生的,你所处的环境、你交往的人,往往会以润物无声的方式影响你。孟母三迁,只为择邻,就是这个道理。
让上级为自己指定导师
如果可能,让你的项目经理或者领导为你指定一个导师(mentor),让导师来帮助你制定你的阶段目标,并且让他来指导你达到目标。
有个实践,叫OJT培训。不过不一定每个公司都运用这种机制。如果你所在的公司没有,那可以让上级给你找一个导师,或者自己找一个。
有经验的导师,既能引导你少走一些弯路,又不会越俎代庖直接帮你把事情搞定。这样你就会自己走在正确的方向上,在节省不必要的精力浪费的同时,又能自己收获实作的经验。
推荐阅读:
相关推荐
给想要开发Android应用的程序员十个建议,已经做android开发的同志们也可以看看。
"雷军:致刚入门的程序员五点建议" 在这里,我们将详细解释雷军给刚入门的程序员五点建议。雷军,一个有十年编程经验的IT行业大师,曾经管理过一千多人的研发队伍,并且现在也是一名天使投资者。他总结了五点建议,...
10. **技术顾问/研究员**:在这个阶段,程序员可能专注于技术咨询,为企业提供技术方向建议,或者从事研究工作,推动技术发展。 总之,“程序员十层楼”的概念是对程序员职业生涯的一种生动比喻,每个层次都对应着...
接下来,结合所提供的15条顶级职业建议,深入分析程序员应该怎样打造和维护一个出色的职业生涯。 首先,编码是程序员职业的核心。建议#1提到,要成为一名优秀的程序员,最重要的是不断地练习编码。这表明理论知识...
建议背诵这些单词,意味着它们涵盖了程序员日常工作中可能会频繁遇到的概念和技术用词,对提升工作效率和沟通能力有显著作用。 标签 "单词 程序员 必学" 强调了这个词汇表是针对程序员群体的学习资料,且学习这些...
10. **职业生涯规划**:对于程序员的职业发展,如何提升技能,如何在职场中保持竞争力,以及如何平衡工作与生活,这期杂志可能也给出了建议和指导。 综上所述,《2009年程序员杂志第十二期》作为当年的重要参考资料...
十九、HR对应届生的简历建议,请慎用英语:讨论了应届生在简历中使用英语的利弊,给出了一些专业建议。 二十、HR简历照片的重视程度只有5%:说明了简历上照片对于整体印象的影响很小,不必过于重视。 二十一、HR...
最后第10章总结了C程序员的发展历程,分析现状,并展望未来。 本书适合所有想要提高C编程能力的人士,无论是初学者还是有一定经验的程序员,或者是系统分析员、系统测试员和企业IT经理等专业人士。此外,书中所有的...
8. **心理健康**:程序员工作中的压力可能对心理健康产生影响,书中可能涵盖如何处理工作压力、保持良好心态的建议,甚至包括休息和放松的技巧。 9. **职业规划**:明确个人职业目标,制定长期和短期规划,可以帮助...
作者建议求职者在面试过程中,尤其是在面谈阶段,应当充分准备,尽量减少紧张情绪,因为过度紧张可能导致面试表现不佳。面试官通常可以接受适度的紧张情绪,但过分紧张会严重影响面试结果。书中还提到,应聘者应该...
从提供的文件内容中可以看出,这是一本为程序员专门撰写的养生书籍,名为《程序员养生书v0.9.pdf》。...作者通过分享自身经历,让程序员读者能够更好地认识到健康的重要性,并通过实际可行的建议来改善生活和工作状态。
【标题】中的“一个老程序员的心里话”和【描述】中的“一位从业十多年的老程序员通过他的亲身经历为大家总结出来的一些经验”表明这篇文章是关于一个经验丰富的程序员分享他在IT行业长期工作所积累的见解和建议。...
程序员职业的发展和学习嵌入式系统的建议 程序员职业通常被认为是一份挑战性极高的工作,这主要是因为它对从业人员要求持续不断地更新知识、学习新技术,并在日常工作中面对高强度的工作压力。文章提出了两种职业...
### 成为优秀程序员的10条修炼秘籍详解 #### 1. 不要拖延工作 在编程工作中,遇到问题如bug或乱码时,应当即刻解决,避免问题积累。拖延不仅会导致问题复杂化,还可能增加后续修复的难度。及时处理这些问题有助于...
首先,文章提到程序员分为十个层次,每个程序员都希望不断提升自己的技术水平。作者建议不要盲目购买书籍或追逐最新技术,而应重视基础知识的积累,因为它们具有长久的实用价值。通过回顾技术历史,可以更好地预见...
程序员职业发展建议 在 IT 行业中,很多人都认为,,如果过了 30 岁就很难有机会再发展下去。这是一个非常错误的观念。事实上,经过十年的开发经验,我可以告诉你,如何从程序员到技术总监,并分享我的经验。 首先...
- **详细解释:** Stephanie Wolf建议程序员应该勇于尝试新事物,不断创新。随着技术的快速发展,新的工具和方法层出不穷。保持好奇心,敢于尝试新的技术或方法不仅可以拓宽视野,还能够激发更多的创造力。此外,...
10. **编程思维**:逻辑推理、问题解决、代码调试技巧等是衡量一个程序员综合素质的重要指标。 通过解答这100道程序员笔试题,不仅可以巩固理论知识,还能提升实际编程能力。在准备过程中,建议结合实际项目经验,...
【标题】:“致刚入门的程序员五点建议” 【描述】:本文主要针对新入行的程序员,讨论了企业对程序员的实际需求与新手程序员面临的就业困境,并提出了五个建议,帮助初学者提升技能,适应职场需求。 【标签】:刚...