IOS培训

亿元级外企ios培训企业

  • 全国服务监督电话4001118989
  • 程序员必备能力提升锦囊

    发布:iOS培训  来源:IOS职场  时间: 2016年05月20日

  • 达内ios培训技术专家提示:在技术领域,有太多的东西会迅速的过时,如何利用有限时间,最大化你的长期收益?这里我可以给出几条建议。...

  • 达内ios培训技术专家提示:在技术领域,有太多的东西会迅速的过时,如何利用有限时间,最大化你的长期收益?这里我可以给出几条建议。

    打造你的工具箱

    工欲善其事,必先利其器。每个开发者都应该有一把自己的“瑞士军刀”,在将来漫长的职业生涯中,这些工具可以为你省下宝贵的时间,并帮助你更好的组织个人知识库。

    举两个例子:

    一套高效的开发环境

    一个信息采集器和一本笔记本

    高效的开发环境

    我们可以从编缉器谈起,这里有IDE vs Text Editor,有Vim vs Emacs,有Sublime vs Atom,那该如何选择呢?在做选择之前,我们先想想自己的目标。我们希望这是一个长期的投资,这款编缉器能被长期使用,在这个过程不断的打磨,使其能完全适合自己的习惯,最大化编缉效率。如果程序员是侠客,编缉器则是他手中的剑。

    虽然我是Vim的重度用户,但我觉得当年选择Vim时有欠考虑。如果让我重选一次,我的第一选择会是Emacs,第二选择会是Atom。

    Emacs已存在30年,社区仍然活跃,其可扩展性在编缉器中无人能出其右。Emacs的脚本语言 elisp又是lisp的一种dialect,我觉得对lisp的学习可以提升程序员对编程核心思想的理解。另一个加分点是Emacs由于其本身的高门槛及lisp特质,吸引了大批高质素的程序员,其社区可谓藏龙卧虎,更诞生了像Org-mode这样神级的插件。

    反观Vim,Vim的精髓在于Mode editing,这是值得学习的,可以极大提高文本编缉的效率。但当你熟悉了这一理念后,我觉得可以转投其他编缉器,因为Vim的架构与Vimscript限制了其扩展性。

    Emacs通过Evil插件非常完整的支持了Mode editing,其他主流的编辑器也有类似插件,所以你一旦掌握了这个理念,在别的编辑器中也可以发挥作用。可能有人会说没有一个Vim emulator能做到Vim 100%的功能,但重点不在于某条指令是否被移植,而是mode editing思想的精髓能否被移植,我觉得答案是肯定的。

    再看Atom vs Sublime,Atom的可扩展性非常好,它的大部分核心功能也是以插件的方式实现,这点与Emacs有异曲同工之妙。并且其开源的特性,使我相信它有比Sublime更持久的生命力。

    关于IDE,我的看法是,我不排斥IDE,但每个IDE都是为了某个特定的任务或是编程语言服务的。做为一个有追求的程序员,可以用IDE,但依然需要精通一个强大的通用编缉器。

    类似编缉器,高效的开发环境还包括Shell,Launcher,窗口管理器,文档阅读器等等。其中有一部分只需要你化很少的时间就可以完成配置,它们的投资回报率是非常高。

    信息采集器和笔记本

    前者是用来收集别人产生的信息,后者则是收集自己产生的信息。

    前者一个简单的例子就是浏览器的Bookmark。你需要能随时将一组有用的信息归档,并在未来的某个时刻快速找到它。后者最直观的例子则是Mac OS或是iOS自带的笔记本,这里的目的是能随时随地记录你自己的想法。

    从本质上讲,就是你需要有一套好用的工具来做你的知识库管理(Knowledge management),也可以说是你知识和思想的外部备份。个人现在是用Evernote同时来做信息采集与笔记的。

    如果有一个好的流程,你也完全可以用两个工具来分别把这两件事做好。但我建议你花足够多的时间来思考如何组织你的个人知识库。

    以上只是两个典型的例子,你需要做的是发现那些你要长期从事的任务(往往不随技术而改变,也不随公司而改变),将完成这些任务所需的工具调整至最优。

    再举一个例子,我会留意身边的程序员所用的键盘。只有少部分的程序员会买高端的静电容键盘,比如HHKB。而在我看来,这明显是一笔很划得来的投资,程序员在工作的大部分时间里都需要和键盘打交道,一个舒适的打字体验是非常有收益的,更何况这类高品质的键盘都非常的耐用。

    开阔你的视野,构建你的技术体系

    首先你要给自己设定一个目标,就如同一个公司会设定它的Vision。

    目标要够大,这样你才能看到更多的风景。

    目标应该设定在解决哪一类问题,而不是精通哪一类技术。技术只是手段,不是目的。

    不过即便有了明确的目标,选择哪一类技术学习,如何学习,在信息过载的今天依然是一个难题。常有的观点是应该学习最新的技术,因为老的已经过时,而反对的观点则是新技术还不成熟。

    当初入一个领域时,选择主流技术框架;当你有一定经验后,选择技术时更应该关注背后的推动者,我相信优秀的人和团队总能打造优秀的产品,无论是商业公司还是开源社区。

    不必太在意技术的新旧,因为可能很快都会成为过去时。你真正要学习的是技术背后的思想。有不少语言与开源项目会写它的Coding philosophy,这是很意思的,你可以从它们的源代码中去验证这些编程理念。

    以Python为例,如果你执行import this就会看到它的理念,再如Python中一个著名的开源库Celery,在它的文档有专门一节讲述它的编程理念。它们对你的影响会比这些技术本身来得更深远,这是我给初学者们的一个忠告。

    同理,我非常推荐读一些优秀开源库或是语言的源代码,例如Python的标准库绝大部分都是用Python实现的,而且可读性非常好。如果学习一门技术仅仅停留在用的层面上,你就还没有完全吸取其中的精华,而且学习的收益会随着技术的过时而消失。

    我的另一个学习原则

    在选择学习一门新技术时,最大化它与你现有知识库的差异性。

    读起来可能有拗口,例如你会Django,接下去你应该去学习Ruby on Rails还是NodeJS?依据这个原则,你应该学NodeJS,因为它的异步IO模型在理念上与Django的同步模型差异很大,而RoR则与Django更多相似之处。

    但更好的选择是不要去学另一个Web framework,去学习ZeroMQ或是Redis,这两者对于Web development也非常有帮助,这样就做到了最大化差异。从构建一个程序员的技术理念角度,我会推荐每一个程序至少去了解Lisp或是一门 Functional programming language,不管你是否会在可见的未来用到,它们能让你从一个不同的角度看待编程。

    最后建议每个程序员都应该经营一款自己的产品,它可以是一款app,一个网站或是一个开源软件。

    重视沟通能力的培养

    当被问到“你学得Junior Developer和Senior Developer最大的差别是什么”时,我最自然的反应是沟通与文档。

    沟通包括程序员团队内部的沟通,与其他团队的沟通,与Manager的沟通等等。我不认为自己有能力把这些问题非常概括地说清楚,不过我可以给一条建议,那就是先学会和你的Manager沟通,让他来教你其余的部分。

    许多公司都会设置Manager与组员的1:1,一个有效率的1:1应该大部分时间有组员来主导。这需要你在1:1之前花足够多的时间来考虑要问的问题,并且最好提前1天发给Manager,让他有机会思考答案。许多人对此不太重视,或者只问非常具体的问题而不是一些开放性问题,这样你很难在你的Manager身上学到东西。如果你渐渐懂得如何利用1:1的时间,它很会成为你在工作中单位时间投资回报率最高的活动。

    累积你的人脉

    每个人都明白人脉的重要性,但实际做起来却不容易。

    参加一些线下的会议或是活动,可能是最直接的扩展人脉的方式之一。可惜大部分人似乎只是去听了一场技术讲座就回家了。而实际上,结识一两个同道中人远比听技术讲座有价值。下次去参加这类会议,不妨给你自己设个目标,比如至少加两个同行的微信。之后维系你的人脉可能需要花更多的时间,下了班或是周末找你的朋友们喝个咖啡吧!

    另外我觉得每个人都需要一个职场导师,他可以是你第一份工作的导师或是Manager,也可以是你认识的其他前辈。你们需要维系一个非常长期的关系,不止于一家公司,最好贯穿你的整个职业生涯。每当你遇到疑惑时,都可以询求他的建议,我觉得这将是你最宝贵的一笔人脉财富。

    寻找发挥你才华的平台

    最后也是最重要的一步,找到适合你的公司。做为求职者评估一家公司可以看三个方面:

    公司的发展前景(大公司的话,看所在部门的发展前景)

    你将要加入的团队

    薪资福利

    所以在面试一家公司的时候,你要意识到面试是双向的,公司在面试你的同时,你也在面试这家公司。面试前你应该对这家公司做足功课,准备好一些有质量的问题,比如指出产品中的问题,询问开发流程或是如何做绩效评估。到时你也可以检验一下你的面试官是否合格。

    每次选择公司对以上三个方面都应兼顾,但在职业生涯的不同阶段,侧重点不同。比如:

    在刚刚工作时,加入一个优秀的团队最为重要,他们可以教会你很多东西,提升你的能力。

    工作5年之后,你需要一个平台施展你的才华,体现个人价值,公司发展前景的重要性迅速提升。

    当你做出一番成绩,证明了自己的价值之后,逐渐进入收获期,就有了与公司要价的资格。

  • 上一篇:33个最刁钻的苹果面试题汇总

    下一篇:面试4大难问题该怎么答?

网站导航
2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56