此文是当时作为前辈写给刚毕业进入公司的小鲜肉们的!~其实写的时候自己经验也才一年,经验不足,大家见笑。
Dear all,
我是阿曌,算是你们的学姐吧,和你们讲讲学姐的故事。
2014年7月份,我毕业了,到现在一直在本公司从事Android/IOS开发。
刚毕业的时候,我还沉浸在跟着项目学知识的阶段,拿到项目会先着手自己最感兴趣的部分,会因为解决了个好几天解决不了(实际可能不太重要)的bug而兴奋不已,每天都怀抱希望、干劲十足地到公司专心敲代码,很开心觉得每天都有新收获。
这故事开头听起来未来一片光明对不对?接着看,因为这很可能也是你们接下来的故事。我相信大家都是有志青年,都是为了实现自我价值(顺便赚取生活费)来的,都不是来浪费时间,享受虚无的——我也是一样。
可慢慢地我开始发现哪里不对劲,工作一年了,都没有什么质的进步。而且更令人恐慌的是,我还不知道问题出在哪儿!每天只争朝夕地工作,加班也越来越多,也觉得每一天都学到新知识,可是技术却进步缓慢!
这个时候,我迷茫了!
开发人员如何快速成长?毫无疑问,做有难度的项目。从项目开发中,我学到如何自定义View,如何设计回调,如何管理多线程,如何真正运用MVC开发模式,如何捕捉异常并且输出到文件中去……这些是自己写Demo学不到的——项目经验很重要。
但这并不意味着你不应该多去写Demo,因为只靠项目积累也有弊端。在某一领域的公司里,可能几年来都是做着同一类型的软件应用,开始什么都不会的时候,确实可以学到很多,可是久了就是一直做着重复的工作,试想一下,如果你只是永远重复着界面粗糙,逻辑简单,交互乏味的app,你的技术能进步多少?当你的技术进步缓慢的时候,很可能就是缺乏挑战的时候。这也是我发现成长缓慢的原因。
为了提高自己,我开始在工作之余找网上的学习视频看,敲敲demo,关注一些大神的博客。在学习的过程中,每每看到醍醐灌顶的文章或博文,我就收藏转载mark加书签,我以为这些理解了拿来了就是自己的。然而事实上,保存那篇好文章给我造成拥有的假象,我可能用不了一个月就会忘得一干二净。当某一天我突然需要用到时我会觉得“我们好像在哪见过,你记得吗”,可是我却不记得去哪儿找到当初的回忆。
好东西应该经过我们理解后被我们转化记录下来,才能有效地稳固在我们脑中。因为只有自己写的,我们才愿意多去(zi)看(lian)几遍——不对,才更容易被我们记住。我也开更技术博客,把平时自己学到理解到的知识以及开发经验更新总结到博客中。而我也建议你们,不断地coding以及练习在网络上发表文章,可以强化你的表达能力与逻辑组织能力。
在平时遇到技术难题的时候,去Stackoverflow用英文搜索答案,那里有很多你百度不到的答案。进而,要不断完善你们的小项目,像处女座追求完美那样去优化你的代码。再而,用checkstyle等插件帮助你规范格式,记住要写出优雅的代码,格式很重要。不得不推荐你们了解Github了,把自己的小项目推上去吧!付出后你会收获更多。最后用博客将自己的开发经验总结下来。
另外,技术更新换代非常快,在我才初学IOS的开发语言Objective-C时,别人已经熟练使用Swift了。可是我想说,大家不要只知一股脑地投入学习最新的技术,而是要先奠定好自己的根基,根基是决定一个人会不会被淘汰的关键。如果根基扎实,新技术会更容易被接收,反之则是需要靠强硬的理解背诵。
那根基是什么?
1.编程思想——面向对象的思想。比如MVC分层架构,按接口编程等,没有编程思想的代码看起来会非常糟糕,不信你去看看你去年写的代码;另外设计模式也很重要,懂得如何合理地设计你的程序会使本来很复杂的结构变得简单。(欢迎参加本公司《设计模式》系列培训。)
2.数据结构。程序的核心目的是收集,整理和展示数据,而数据的核心就是数据结构。
3.算法。如果你大学的算法课没有好好学的话,你会发现项目中快速排个序对你都很困难。
4.基础API。如果以上三点都是你行走的工具的话,那基础API就是你的两条腿,它们是支撑你走路的最基本的实体。你需要掌握网络通信,多线程处理,基础UI,JSON/XML数据解析等通用知识。
以上四点,相信大学都教过但是不够全面。如何去完善你的知识体系,六个字,多学,多写,多敲。
IT是一个朝阳行业,正处于蓬勃发展中,相对于其他职业,我们更能够将命运掌握在自己手中,“荣辱自取,不求于人”,这是一种非常好的感觉,大家都是幸运儿,我们的价值,我们的可能性,都看我们自己了。
--------------
阿曌
2015.6.10
网友评论