编程小贴士

给你的编程提供小点子


优秀程序员思考、学习新技术的原则和方式

先看下面这样的困惑:

最近了解了几个MVC的框架,其中有两个是公司内部的。发现这些东西都是类似的,从处理逻辑到页面渲染;从service到layout;配置的实现无非就是XML,或者annotation……我有种感觉,兴许已经跳不出这个思维圈子了?

如今的时代,是一个概念翻飞的时代,oschina里的开源软件数量就已经超过了两万,五花八门的技术层出不穷,到底什么技术才是值得学习的?

有位朋友说,他想学习一些关于Android上的开发技术,兴趣驱使。几个月过去了,他说他已经能做出许多小程序了,可是他现在回想起来,掌握一门技术是好,可兴趣之外还有什么呢?他说,“如果我的工作中不使用Android平台,我学它还有何用?”。

学习技术到底是一件有意思的事,还是一件痛苦的事?读书的时候,我曾经买过侯捷翻译的《深入浅出MFC》,对那时的我来说,似乎太困难了一点,我强迫自己看完了三分之一,实在是没有毅力继续往下读了。我在其中察觉不到快乐,这本书在当时似乎充满了生涩。

如上这样的故事太多了,很多时候,程序员们(包括我在内)辛苦地学习,有的没有好的效果,有的过程充满痛苦,有的更是不知道我学它的目的是什么。

国内的教育体制,培养了这样一批人:

他们努力、奋进,热爱技术,愿意投身软件行业,愿意写出高质量的代码,他们对业界的东西很感兴趣,他们愿意学习扎实的基础知识,他们渴求火热的新技术……

几年以后,他们拥有广泛的视野,阅历宽阔、经验老到、言辞犀利,对行业动态了如指掌,显然,他们是行业的博学者。

然而……

他们却缺乏这样一种能力——思考。

欠缺思考容易导致这样的现象:

不会做设计

遇到了问题,拿见到过的、学到了的熟悉的框架、方案、模式往上套,而不仔细分析其中的利弊,只是尽可能地寻找最接近当前问题的解决途径。

有 的是不会做系统设计。和少数所谓的“架构师”接触过,他们“只懂业务,不懂技术”,这样设计出来的系统只能满足功能性需求;而论坛上的一些具体问题的讨论 话题,则暴露出一些跟帖讨论者“只谈技术,不提业务”,譬如“XXX大容量的解决方案”、“秒杀系统的终极架构”,企图对某一类宽泛的问题,设计出一套放 之四海皆准的通用解决方案。

还有的则是不会做面向对象设计,缺少抽象和解耦的能力,这样的例子就更多了。朋友告诉我,他的单位有一位写Ruby的老员工,一个庞大的工程,代码里面居然只有一个上帝类,就搞定了所有的问题。

不能坚持自己的观点

这一点在面试中最容易观察到。应聘者有刚毕业的学生,也有工作超过10年的有丰富经验的从业者。他给出一个粗略的方案以后,在方案没有细化到一定程度以前,很难给出优劣的评论,但是,如果你轻轻地challenge一下,他就迅速放弃本来的构思,跑到你的思路上来。

例如,SNS系统中,服务端有消息要怎样通知到客户端,这样的一个问题,解决方案有很多种,比如客户端轮询、服务端hold住连接推送等,各有利弊。应聘者应当有自己的观点。

不能细化一个问题解决方案

怎 样区分一个空谈家和一个实干家?给他一个具体的问题是最好的办法。在我刚工作的时候,我曾经很钦佩那些在活动中、讨论中高谈阔论的人,我觉得他们很能说。 可是后来我逐渐发现,能说的人实在是太多太多了。细化设计、甚至落到编码,才是对一个程序员真实的检验。当然,如果你觉得做软件设计的人可以不熟悉编码、 架构师可以不首先是一名高级程序员,那我们也没有什么可谈了:)。

如果你会学习,你可以成长得很快;如果你不会思考,你永远只能跟在别人后面。

在新技术的学习上我认为也应当多思考,不同的人有不同的学习动机。在非外界所迫的情况下,对于新技术的学习,我的观点可以概括为:

它要解决什么问题,就是所谓的问题域,是我关心的吗?

我没有去研究操作系统底层的实现,并非这没有价值,而是我没有兴趣,这就是问题域的影响(不过现在我有兴趣了,我想做一些这方面的事情)。

和过往解决方案它的优势在哪里,是否显著?

这 是competition,重复的技术是没有生存空间的(当然,你是微软的话除外:)),就像互联网同一个类型的网站,竞争到最后就那么两三家。就像 Groovy,我很喜欢它,但是有了Scala以后,我觉得兴许有一个要死掉(Groovy创始人说,如果他早些知道Scala的话,就没有Groovy 什么事了。具体的报道请去Google上搜他的blog)。

它的实现和带来的效果上看,有没有很有意思的思路,是值得借鉴和思考的?

这 是最难讲的一个问题。以去年初开始接触的Node.js为例,它可以做到把后端的聚合(譬如portlet之流)放到前端来,后端只保留一种类型的页面服 务——页面模板,以及若干易于管理的API接口,大大简化了后端体系的复杂度,而且还能把压力分散到前端来,这是我早些年不曾见到的。

这三个问题想过之后,觉得有价值,我才去学习。要不然,对我而言就是不想深入的东西,了解了解也就罢了。

新技术学习的方式呢,我想说这么几点:

寻找切入点

我很喜欢BlueDavy的blog上的一句话:“理论不懂就实践,实践不会就学理论!”。

最后最好是要落到动手实践上去的,但是倘若习惯从那些原理介绍的文字入手,未尝不是一种不好的选择。而且,现实情况会有一些约束,例如在了解几家互联网公司的云平台的时候(Amazon的EC2,M$的Azure等等),除非你是这几家公司的员工,否则是很难深入其中的。

寻找自己的兴趣点

学习应当是一件有意思的事情,当你的大脑排斥它的时候,我不相信可以很容易地掌握这门新技术。如果你找不到兴趣点,那么,不妨回到我前文对于新技术是否值得你学习的观点上去,既然你没有什么兴趣,你学它干嘛?西安软件培训

善于比较

比较是一种非常容易上手的思考方式,和什么比较?和相似技术比较,和操作系统、网络这些基础设施上面的例子比较,最后,和生活中的例子比较(譬如,JAVANIO的实现是一个很好的例子)。

不断获得回馈

回馈是什么?做出一个HelloWorld的例子,就是一个极好的回馈;理解某一项实现原理,联想到其它类似的实现,产生一种恍然大悟的感觉,也是一种回馈。在学习的过程中,不断产生回馈,意味着你不断地收获成就感,这是继续下去的动力之一。

113 Responses to “ 优秀程序员思考、学习新技术的原则和方式 ”

  1. i love pron说道:

    oXQi1z Thank you ever so for you blog post.Really looking forward to read more. Cool.

  2. The information and facts talked about within the post are some of the top out there

  3. tra gung说道:

    Thanks-a-mundo for the article post.Really thank you! Keep writing.

  4. coloringbook说道:

    Your style is really unique in comparison to other people I have read stuff from. Thanks for posting when you have the opportunity, Guess I will just book mark this site.

  5. what is mca说道:

    This is a very good tip especially to those fresh to the blogosphere. Simple but very precise info Thanks for sharing this one. A must read article!

  6. What as up everyone, it as my first pay a visit at this

  7. Smokers Lungs说道:

    It as the little changes that make the biggest changes. Many thanks for sharing!

  8. Only wanna tell that this is extremely helpful, Thanks for taking your time to write this.

  9. It as nearly impossible to find knowledgeable people in this particular topic, however, you seem like you know what you are talking about! Thanks

  10. click here说道:

    Thanks for sharing, this is a fantastic blog.Really thank you! Great.

  11. Oluwadamilare说道:

    You ave made some good points there. I looked on the internet for additional information about the issue and found most individuals will go along with your views on this website.

  12. home page说道:

    Wow, great blog.Thanks Again. Will read on

  13. w88world.com说道:

    Really enjoyed this blog article.Much thanks again.

  14. Utterly written subject material, appreciate it for selective information.

  15. This particular blog is no doubt educating additionally amusing. I have chosen a lot of handy advices out of this blog. I ad love to go back every once in a while. Cheers!

  16. Mca benefits说道:

    Somewhere in the Internet I have already read almost the same selection of information, but anyway thanks!!

  17. tui xach dep说道:

    I truly appreciate this post. I have been looking everywhere for this! Thank goodness I found it on Bing. You have made my day! Thank you again!

  18. woking cab说道:

    Very good post.Really thank you! Fantastic.

  19. Really appreciate you sharing this blog article.Really thank you! Fantastic.

  20. Ep coc ly tam说道:

    You made some good points there. I looked on the internet for the subject and found most people will go along with with your blog.

  21. It as exhausting to find knowledgeable individuals on this topic, however you sound like you already know what you are speaking about! Thanks

  22. pretty beneficial stuff, overall I feel this is really worth a bookmark, thanks

  23. Way cool! Some very valid points! I appreciate you penning this write-up and also the rest of the site is very good.

  24. I truly appreciate this post.Thanks Again. Great.

  25. Major thanks for the blog.Much thanks again. Awesome.

  26. It’а†s really a cool and useful piece of information. I am happy that you shared this useful info with us. Please keep us up to date like this. Thanks for sharing.

  27. her latest blog说道:

    Thanks so much for the article post.Much thanks again. Awesome.

  28. Nwokolo说道:

    I truly appreciate this article post. Cool.

  29. I really liked your blog article. Fantastic.

  30. We think you should read this I am still learning from you, as I am trying to reach my goals. I definitely love reading all that is posted on your blog.Keep the tips coming. I enjoyed it!

  31. Im no expert, but I think you just made an excellent point. You undoubtedly fully understand what youre talking about, and I can really get behind that. Thanks for being so upfront and so honest.

  32. Its hard to find good help I am forever proclaiming that its hard to get good help, but here is

  33. Paul McCartney说道:

    I value the blog post.Much thanks again. Want more.

  34. This unique blog is no doubt interesting additionally diverting. I have picked up many handy things out of this source. I ad love to go back again and again. Thanks a lot!

  35. to learn more说道:

    Thank you for your blog post.Thanks Again. Awesome.

  36. I reckon something really special in this internet site.

  37. It as not that I want to duplicate your internet site, nevertheless I really like the layout. Might you allow me identify which propose are you using? Or was it principally designed?

  38. You have brought up a very great points, thanks for the post.

  39. Please keep us informed like this. Thanks for sharing.

  40. sidekick说道:

    Ppl like you get all the brains. I just get to say thanks for he answer.

  41. Elena Matei说道:

    Some genuinely choice articles on this internet site , saved to bookmarks.

  42. I was recommended this web site by my cousin. I am not sure whether this post is written by him as no one else know such detailed about my problem. You are amazing! Thanks!

  43. seo tips说道:

    Luo the wood spoke the thing that he or she moreover need to

  44. mmbanifo说道:

    I will right away grab your rss feed as I can at in finding your e-mail subscription hyperlink or newsletter service. Do you ave any? Kindly allow me know in order that I may subscribe. Thanks.

  45. Way cool! Some very valid points! I appreciate you writing this write-up and the rest of the site is also very good.

  46. Thanks again for the blog article. Really Great.

  47. Major thanks for the article.Really looking forward to read more. Want more.

  48. Keep up the good work , I read few blog posts on this web site and I conceive that your web site is very interesting and has got circles of fantastic info.

  49. Crochet basico说道:

    Thanks for sharing this fine piece. Very inspiring! (as always, btw)

  50. You make it enjoyable and you still take care of to keep it smart. I can not wait to read much more from you. This is really a tremendous website.

  51. Arctic Circle说道:

    You could certainly see your enthusiasm within the work you write. The arena hopes for more passionate writers like you who are not afraid to mention how they believe. All the time follow your heart.

  52. try this说道:

    Latest Pre Paid Mastercard Auctions PrePaid Mastercard

  53. white shoes说道:

    I’а†ve recently started a blog, the information you offer on this site has helped me tremendously. Thank you for all of your time & work.

  54. more说道:

    Many thanks for sharing this fine post. Very inspiring! (as always, btw)

  55. free cams说道:

    Thank you ever so for you article.Thanks Again. Will read on

  56. to win the Superbowl. There as nothing better wholesale

  57. My brother recommended I might like this blog. He was entirely right. This post truly made my day. You can not imagine simply how much time I had spent for this information! Thanks!

  58. Waec说道:

    I went over this internet site and I conceive you have a lot of excellent information, saved to my bookmarks (:.

  59. School admission说道:

    Spot on with this write-up, I really believe that this web site needs a great deal more attention. I all probably be back again to read through more, thanks for the info!

  60. I?ve read several excellent stuff here. Definitely worth bookmarking for revisiting. I wonder how so much effort you put to make one of these fantastic informative website.

  61. to mind. Is it simply me or does it look like li?e some of

  62. Thank you for sharing your thoughts. I really appreciate your efforts and I will be waiting for your next post thanks once again.

  63. Remarkable! Its actually remarkable post, I have got much clear idea on the topic of from this post.

  64. what we do with them. User Demographics. struggling

  65. reduslim说道:

    Thanks-a-mundo for the article. Much obliged.

  66. Open heavens说道:

    You made some good points there. I did a search on the issue and found most individuals will consent with your blog.

  67. Apple Reparatur说道:

    There is definately a lot to learn about this subject. I like all the points you made.

  68. wow, awesome blog article.Really thank you! Cool.

  69. Well, I don at know if that as going to work for me, but definitely worked for you! Excellent post!

  70. I truly appreciate this post. I have been looking all over for this! Thank goodness I found it on Bing. You ave made my day! Thanks again

  71. Really informative blog article.Really thank you! Cool.

  72. time and yours is the greatest I ave came upon so far. However, what in regards to the bottom

  73. Piece of writing writing is also a excitement, if you be acquainted with afterward you can write or else it is complicated to write.

  74. tweaks说道:

    Thanks for a marvelous posting! I actually enjoyed

  75. Say, you got a nice blog.Much thanks again. Awesome.

  76. Thanks for sharing, this is a fantastic blog article.Really thank you! Really Great.

  77. I really liked your blog.Really thank you! Keep writing.

  78. Thank you for your post.Thanks Again. Want more.

  79. personal injury说道:

    I truly appreciate this post.Thanks Again. Fantastic.

  80. Im thankful for the blog.Really thank you! Fantastic.

  81. Outstanding post, I think people should learn a lot from this web site its very user friendly. So much great info on here :D.

  82. devotionals说道:

    Im obliged for the blog article. Really Cool.

  83. well defined说道:

    Thank you for your blog article. Fantastic.

  84. This website truly has all the info I needed concerning this subject and didn at know who to ask.

  85. terrastone说道:

    Wow, awesome blog layout! How long have you been blogging for? you made blogging look easy. The overall look of your website is wonderful, let alone the content!

  86. Thank you ever so for you article.Much thanks again. Awesome.

  87. this website说道:

    Just Browsing While I was browsing yesterday I saw a great article concerning

  88. you can check说道:

    Really enjoyed this blog.Really thank you! Keep writing.

  89. This particular blog is without a doubt interesting and besides factual. I have picked up helluva interesting things out of this source. I ad love to return again soon. Thanks a lot!

  90. Some really interesting details you have written.Helped me a lot, just what I was searching for .

  91. It as hard to find well-informed people for this subject, but you seem like you know what you are talking about! Thanks

  92. Thankyou for this post, I am a big big fan of this internet site would like to go on updated.

  93. share说道:

    Very nice post. I just stumbled upon your weblog and wished to say that I have truly enjoyed browsing your blog posts. After all I will be subscribing to your feed and I hope you write again soon!

  94. ndu说道:

    I value the article post.Thanks Again. Keep writing.

  95. miller electric说道:

    Very nice post. I just stumbled upon your blog and wanted to say that I have really enjoyed surfing around your blog posts. After all I all be subscribing to your feed and I hope you write again soon!

  96. free advertising说道:

    Wow, amazing blog layout! How long have you been blogging for? you make blogging look easy. The overall look of your website is wonderful, as well as the content!. Thanks For Your article about sex.

  97. view说道:

    Would you be involved in exchanging hyperlinks?

  98. see this website说道:

    You made some clear points there. I did a search on the subject and found most individuals will agree with your site.

  99. Wow! Thank you! I always needed to write on my blog something like that. Can I take a portion of your post to my site?

  100. Thorn of Girl Great info might be uncovered on this website blogging site.

  101. Pretty! This has been an incredibly wonderful article. Many thanks for supplying this information.

  102. Wonderful web page. Numerous valuable data here. We are delivering that to several mates ans also revealing inside delectable. And of course, interesting work!

  103. Thanks-a-mundo for the blog post.Much thanks again.

  104. caratulas CD说道:

    Very good article. I will be going through a few of these issues as well..

  105. view说道:

    Say, you got a nice blog post.Really thank you! Really Cool.

  106. Pretty! This was a really wonderful post. Thank you for providing this information.

  107. vong bi nsk说道:

    you made running a blog glance easy. The total glance of

  108. buat pb garena说道:

    It’а†s really a nice and helpful piece of information. I’а†m satisfied that you shared this helpful info with us. Please stay us up to date like this. Thank you for sharing.

  109. to learn more说道:

    pretty helpful stuff, overall I think this is worthy of a bookmark, thanks

  110. check here说道:

    I really liked your article.Really thank you! Will read on

  111. go there说道:

    You ave made some good points there. I checked on the internet for more info about the issue and found most people will go along with your views on this web site.

  112. Terrific paintings! That is the type of info that should be shared across the internet. Shame on Google for now not positioning this post upper! Come on over and visit my web site. Thanks =)

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>