《软技能——代码之外的生存指南》
我真的不是什么专家,我没有什么东西可以营销?
即便你不认为自己是专家,也并不妨碍你现在就开始自我营销。事实上,试图找出自我营销的方法可以让你成为专家,专门从事某一特定领域的软件开发工作。
基本上每一个开发人员都是有些能耐的——可能你观察事物的视角比较独特,或者可能你与其他软件开发人员的背景不尽相同,又或者你的兴趣爱好与客户或者其他软件开发人员相似。只要营销得法,即便是“菜鸟”或者“业余爱好者”的身份都是你的优势所在——很多人喜欢向比自己稍微优秀一点点的人学习,因为这些人是可望而又可及的。
关键是,不要让“不是专家”成为放弃自我营销的借口。无论你身处自己职业生涯的哪个阶段,你都可以从营造和传播自己的品牌中获益匪浅。
我真不知道该写些什么?
许多想要开博客的人要么从来就没有开过,要么开了之后就很快放弃了,因为他们要么不知道该写什么,要么发现自己是在没什么可写。(哈哈,我也遇到了相同的问题,想起来自己荒废博客)
解决这个问题的最好方法是提前头脑风暴出各种不同的想法,随时更新可能的博客主题清单,这样你总是保持一堆话题可供选择。(还有就是随着输入,就会多些思考,这也是话题的来源)
同时,不要太担心你的文笔如何,不要太在意别人的想法。有时候你只要写一篇博客让自己的博客有内容,并不知道这篇博客会是自己点击量最高的文章,我写过不少自己觉得质量很差的文章,却成为最热门的文章。(我最开始写博客的时候非常担心自己的文笔,也很在意别人的想法,读过《原则》之后我的思维发生了一些转变,承认自己的缺点,并采取行动,比如我很懒,以前麻痹自己,导致很拖延,现在承认这个问题,然后积极采取行动,我现在变得不拖延了,如果你也有此问题,或许《原则》这本书可以帮你。)
要想弄清楚写什么,还有一个技巧,就是与别人就某个话题展开对话、甚至辩论。我经常发现自己写得好的文章一般是先前与比人讨论过的。
自我营销:
你的营销手段决定了你营销对象是受益还是受损,优秀的营销会将人们的需要或者期待与能够满足此愿望的产品或服务关联起来,所以,营销追求的是“实现价值在先,要求回报在后。”
“自我营销”就是把希望得到你提供的产品或者服务的人和你自己联系起来。自我营销的正确方式就是为他人提供价值。
品牌是对产品或者服务的一整套预期。品牌的关键是品牌带给你的感受,是你与品牌互动时的预期。品牌即承诺:承诺按照你预期的方式交付你所预期的价值。这里我想到了我买衣服总去的几家店,拉夏贝尔、ONLY、ELAND 等,来到这几家店我知道我一定会买到适合我这个年龄、工作环境、质量又好的衣服,我与品牌之间产生了互动,品牌给了我预期。
品牌四要素——品牌所要传递的信息、品牌的视觉符号、品牌的一致性和品牌的曝光率。个人品牌一致性越强,就越能被更多的人关注,也更容易被记住。
博客可以提高你的沟通技巧,组织自己的思想,并将其转化成为文字,是一项颇具难度却也极具价值的技能。定期写作能帮助你打磨此技能,有了很好的沟通能力会让你在生活的颇多领域受益。如果你能约束自己定期更新博客,你也就是在持续刷新自己的技能,保证自己处于自己所在专业领域的前沿。
打造成功博客的最大秘诀有且只有一个——持之以恒地输出高品质的内容。这让我想起了《原则》书中,作者坚持很多年,更新自己在经济看法的每日一文,在《软技能》这本书中又看到了类似的观点,驱使我自己去实践这个行动,我尝试坚持去写每日阅读记,打磨自己的心性和能力。
《JavaScript 设计模式与开发实践》
面向对象的 JavaScript:
语言特性静态语言:在编译时就已确定变量的类型。
优点:编译时能够发现类型不匹配的错误,程序明确规定了数据类型,编译器还可以针对这些信息对程序进行一些优化工作,提高执行速度。
缺点:迫使程序员依照强契约编写程序,在编写程序到时候,这些细节或让程序员的精力从思考业务逻辑分散开来,毕竟大部分写程序的目的是为了完成需求交付生产。
动态语言:程序运行时,待变量被赋值以后才会具有某种类型。
优点:程序员把更多精力放在业务逻辑上,专注于逻辑表达。
缺点:无法保证变量类型,运行时可能发生跟类型相关的错误。作者这里用了一个很生动的比喻,好像是在商店买了一包牛肉辣条,但是真的吃到嘴里才知道不是牛肉味。
鸭子类型:通俗解释,如果它走起路来像鸭子,叫起来也是鸭子,那么它就是鸭子。(哈哈,很抽象)
动态语言能够很轻松的实现一个原则:面向接口编程,而不是面向实现编程。比如:有 push 和 pop 方法,就可以当做栈来使用;一个对象如果有 length 属性,也可以依照下标存取,这个对象可以被当做数组使用。
多态:通俗解释,给不同对象发送同一消息的时候,这些对象会根据这个消息分别给出不同的反馈。多态最根本的作用是通过把过程化的条件分支语句转化为对象的多态性,从而消除这些条件分支语句。(多么精辟)
将行为分布在各个对象中,并让这些对象各自负责自己的行为,这正是面向对象设计的优点。
原型模式不单是一种设计模式,也被称为编程泛型。基于原型的继承:
var A = function(){}
A.prototype = obj
var a = new A()
设计模式是对语言不足的补充,如果要使用设计模式,不如去找一门更好的语言。