21-9月 -06摘录

====================================================================================

程序员是一个年轻的群体,很多人都进入这个行业没几年,就像我一样。
    有很多朋友都谈论过中国程序员30岁之后干什么,是不是能一直编写代码,这些都是让我们头痛的问题。下面很多都是我个人的想法,也不知道对与错,闲暇之余记录下来,以便以后还可以回顾到现在的一些想法。

墨翟

    墨翟大约生于公元前475年,曾是一个个体劳动生产者,做过工匠。在从事政治活动时还利用他的高超技术,赛过了当时最著名的工匠公输般(鲁般),为他的政治主张服务。后来墨子由工匠上升为知识分子的“士”,并成为墨家的创始人。
    可以说他是中国比较早的朴素唯物论者,早年从技术上着手,达到了很深的造诣。后来才进入“士”这个阶层推行自己的政治与哲学主张。
    中国一直都少有纯靠技术能达到显赫声望的例子。

中国的匠人

    《滕文公上》中说道“或劳心,或劳力。劳心者治人,劳力者治与人。治于人者食人,治人者食于人,天下之通义也。”
    孟子将人分为“劳心”、“劳力”两种,劳心者管理劳力者、劳力者被劳心者统治。这点在中国来说是普遍现象。
    中国的匠人一直就处于社会的底层。
    “万般皆下品,唯有读书高”,这里的读书并非读的技术书籍,而是学习孔孟之道,最终进入官场。
    处于最底层的工匠大多受到统治者的压迫与奴役,但以墨子为代表的技术出身的“士”能做到的就仅仅是劝服统治者要好一点对待这些从事工业生产的人。这点正好说明了中国的匠人没有很好的社会地位,是一种弱势的文化。

程序员的选择

    相信程序员绝大多数是来自于知识分子,但和古时的知识分子不同,程序员是匠人的一种。也就是上面说的“劳力”者,主要花费的是脑力。
    但是作为程序员,大家到底想要什么?
    显赫的地位?也许有点,不过更多的是指程序员圈子里面的影响力。
    丰厚的收入?这个就不用说了,没钱肯干活的人一定别有用心。
    技术的热情?承认有部分同行主要是靠这种热情工作。
   
最初我在网上看到有人把程序员说成是工匠,还是有一些抵触情绪的。好歹自己也是受过高等教育的人。现在想来,程序员应该是最接近劳心者的劳力者,这也是唯一能自我慰籍的一点。
当然,并不是所有人都认为“劳力者”不好,这个我就不讨论了,下面的是说给像我这样不想只是当个“劳力者”的劳力者说的。
“劳 心”体现在管理与统治,现在我们提倡的都是自我管理的思想,自己做计划,自己协调所需资源等等。团队的管理者是公司指派,但由于软件产业的复杂性,导致我 们不能像传统行业里那样做严格精细的控制,因为这个特点,所以一个良性的开发团队应该是一个自我组织的团队。在这里劳心与劳力不应该有严格的区分。

有个朋友在一家很有名的电子芯片制造公司工作,上次见面说起他的境况。他很是得意地说,估计再过几年就能当上管理者了。听到这话我可是大吃一惊,在软件行业混个三四年一般都能当上管理者。
并不是说那个朋友不行,而是行业的差异造成的。软件行业里要当管理者是比较容易的一件事。就算没有当管理者,很多事情都是需要自己管理,进度、风险、质量、资源等因素几乎每天都需要我们来考虑,哪怕只是一个普通的程序员。真是劳心又劳力。
=============================================================================================
我们似乎和“三”有着说不清的联系。汉语中有许多关于三的成语,如约法三章、举一反三、事不过三等等。很多时候会下意识地把某件事或物按照三来分类。
       追本溯源,这和易经有着很大关系。《系辞 下》说“易之为书也,广大悉备,有天道焉,有人道焉,有地道焉。兼三才而两之,故六。六者非它也,三才之道也”。这里说的三才指的就是天人地三个层次。用三才之道来管理,也可以叫做三才管理。
1、管理结构
       虽说时代在进步,社会在发展,但人们仍然会受到传统文化的影响。所以就算我们没有提出三才管理这个概念,事实上也有很多的企业就是按照这个思路在办。只不过大多数人都是受到了文化的影响而不自知。
1.1、 情理法的层次
企业管理分三层,高层、中层、基层。直白一点说就是老板、经理、普通员工。这是长久以来我们一直沿用的分析方法。而这三层的侧重点又各有不同。
高层的重点在于“情”,中层重点在于“理”,基层重点在于“法”。三层既是管理上的三个层次,又是情理法的结构。

       首先说高层的情。大家都说人性化管理,但人性化管理并不是仁慈化管理,而是要针对人性的特征来改变管理的策略。情是人性的最好的一种表达方式。“士为知己者死”,古时候那些明主良将的美谈很多都是因为情字才得以成功。其中就要以刘备和唐僧为代表了。
       或许有人会认为,人性就是讲人情。当然这种想法也是有问题的。人情在中国不能不讲,但讲得太多就没法管理了,尺度很难把握。理所当然就出现了中层的理字。高层是不能直接管理基层的,一管就要出问题。中间要有一个缓冲地带,怎样将情字合理化,就是中层的主要任务。
       等到要具体做出成果来,讲情讲理当然不够,基层做事必须有形之有效的流程制度。流程制度就是法。
       合情合理合法是我们一直说的目标,事情如果能达到这三点要求肯定会被绝大多数中国人认可了。同样企业管理中情理法的三层能协调运转,企业也能蒸蒸日上。
1.2、中国文化的缺陷
       中国文化有一个致命的缺点,就是门槛太高。这与古代文化的发展形态也有一定的关系。最早期文化只是掌握在少数统治阶级手上,等到后来才逐步向民间扩展,现在的文明已经有了质的改变。传统文化中对人性探讨的理论可以说是经久不衰,但缺乏的是现代企业所必需的规范化流程。
       从三才管理的角度来看,情理是我们的强项,但对于基层的法却一直是很薄弱的地方。
2、敏捷的位置
       敏捷是一种技术、一种方法,更是一种工作方式、一种生活态度。——CSDN敏捷圈子的简介。
 
       按照上面所分析的管理结构,敏捷是理与法的结合。
我们的文化中最复杂的一个字就是“道”,另外还有一个字和“道”的意思差不多,就是“理”。合道既为合理。先合理,其次在讲合法。(这里不会对社会的法制建设作评论,只谈技术,不谈国事)
2.1、敏捷中的理
       敏捷的价值观就是理。这也是国外的先驱们在经过了惨痛教训之后才渐渐认识到的观念。
敏捷宣言:
个体和交互            胜过        过程和工具
可以工作的软件     胜过        面面俱到的文档
客户合作               胜过        合同谈判
响应变化               胜过        遵循计划
 
       理是不变的,但流程却是不重复的。在追求可靠但不重复的流程中,不变的理就尤为重要。这点在 大易管理与拥抱变化中有过一点分析。
2.2、敏捷中的法
       敏捷并不是有些人所想的那样,一套宽松的流程或者说是“土匪式”的开发方法。它拥有着异乎寻常的严格的要求。
比如说TDD中对人的要求甚至精确到了以分钟为单位。其他的技术,比如说持续集成、重构都是强制性的制度。
法是因为合理才有存在的必要。“客户合作”是否合理?合理,所以我们需要现场客户。追求高效是否合理?合理,所以我们需要保证5分钟通过一个测试用例。
其他一些方法,无一不是以理为中心的。
2.3、敏捷的缺陷
       前面说到,敏捷是以理与法结合的产物。很明显,我们可以看到,敏捷放到三才管理体系中少了最上面一层,就是情字。对人性的研究正是现代科学所欠缺的部分。
3、发展趋势
       在 从迭代过程到自然法则一文的最后,我提到了道与术的结合。三才管理为道,敏捷为术。各有所长,各有所短。
       从上面的分析可以看到,中国的管理理念缺少了具体执行的法,而敏捷缺少了对人性的研究。两者正好结合起来。
       今后敏捷的发展也应该是往人性的探讨上再进一步。
       希望能尽快见到一个更加具有灵性的“敏捷”。

==================================================================================================


10 Programming Languages You Should Learn Right Now

Knowing a handful of programming languages is seen by many as a harbor in a job market storm, solid skills that will be marketable as long as the languages are.

Yet, there is beauty in numbers. While there may be developers who have had riches heaped on them by knowing the right programming language at the right time in the right place, most longtime coders will tell you that periodically learning a new language is an essential part of being a good and successful Web developer.

"One of my mentors once told me that a programming language is just a programming language. It doesn't matter if you're a good programmer, it's the syntax that matters," Tim Huckaby, CEO of San Diego-based software engineering company CEO Interknowlogy.com, told eWEEK.

However, Huckaby said that while his company is "swimming" in work, he's having a nearly impossible time finding recruits, even on the entry level, that know specific programming languages.

"We're hiring like crazy, but we're not having an easy time. We're just looking for attitude and aptitude, kids right out of school that know .Net, or even Java, because with that we can train them on .Net," said Huckaby.



"Don't get fixated on one or two languages. When I started in 1969, FORTRAN, COBOL and S/360 Assembler were the big tickets. Today, Java, C and Visual Basic are. In 10 years time, some new set of languages will be the 'in thing.' …At last count, I knew/have learned over 24 different languages in over 30 years," Wayne Duqaine, director of Software Development at Grandview Systems, of Sebastopol, Calif., told eWEEK.

By picking the brains of Web developers and IT recruiters, eWEEK selected 10 programming languages that are a bonus for developers to add to their resumes. Even better, they're great jumping-off points, with loads of job opportunities for younger recruits.

1. PHP

What it is: An open-source, interpretive, server-side, cross-platform, HTML scripting language, especially well-suited for Web development as it can be embedded into HTML pages.
Why you should learn it: It's particularly widely used. "High-speed scripting with caching, augmented with compiled code plug-ins (such as can be done with Perl and PHP) is where the future is. Building Web apps from scratch using C or COBOL is going the way of the dinosaur," said Duquaine.
Job availabilities: 1,152*
2. C#

What it is: A general-purpose, compiled, object-oriented programming language developed by Microsoft as part of its .NET initiative, it evolved from C and C++
Why you should learn it: It's an essential part of the .Net framework. "Learning C#, which is just Java with a different name plate, is critical if you heavily use Microsoft," said Duquaine.
Job availabilities: 5,111
3. AJAX (Asynchronous JavaScript and XML)

What it is: Though technically not a programming language, AJAX uses XHTML or HTML, JavaScript and XML to create interactive Web applications.
Why you should learn it: Ever since Google Maps put AJAX, well, on the map, the requests for AJAX-knowledgeable pros went through the roof. "The demand for AJAX knowledge is huge because it's so damned hard to learn," said Huckaby. Of note, Microsoft announced recently plans to release a tool named Atlas that will make AJAX easier to implement. "If Microsoft's Atlas tool is successful, it would bring the extreme complexity and annoyance of AJAX to the average worker," said Huckaby.
Job availabilities : 1,106
4. JavaScript

What it is: Not to be confused with Java, JavaScript is a an object-oriented, scripting programming language that runs in the Web browser on the client side. It's smaller than Java, with a simplified set of commands, easier to code and doesn't have to be compiled.
Why you should learn it: Embedded into HTML, it's used in millions of Web pages to validate forms, create cookies, detect browsers and improve the design. With its simplicity to learn as well as wide use, it's considered a great bang for your educational buck.
Job availabilities: 4,406
5. Perl

What it is: Perl is an open-source, cross-platform, server-side interpretive programming language used extensively to process text through CGI programs.
Why you should learn it: Perl's power in processing of piles of text has made it very popular and widely used to write Web server programs for a range of tasks. "Learning some form of scripting language, such as Perl or PHP is critical if you are doing Web apps," said Duquaine.
Job availabilities: 4,810
6. C

What it is: A standardized, general-purpose programming language, it's one of the most pervasive languages and the basis for several others (such as C++).
Why you should learn it: "Learning C is crucial. Once you learn C, making the jump to Java or C# is fairly easy, because a lot of the syntax is common. Also, a lot of C syntax is used in scripting languages," said Duquaine.
Job availabilities: 6,164, including all derivatives
7. Ruby and Ruby on Rails

What they are: Ruby is a dynamic, object-oriented, open-source programming language; Ruby on Rails is an open-source Web application framework written in Ruby that closely follows the MVC (Model-View-Controller) architecture.
Why you should learn it: With a focus on simplicity, productivity and letting the computers do the work, in a few years, its usage has spread quickly. As a bonus, many find it easy to learn.
Job availabilities : 210 and 54, respectively
8. Java

What it is: An object-oriented programming language developed by James Gosling and colleagues at Sun Microsystems in the early 1990s.
Why you should learn it: Hailed by many developers as a "beautiful" language, it is central to the non-.Net programming experience. "Learning Java is critical if you are non-Microsoft," said Duquaine.
Job availabilities: 14,408
9. Python

What it is: An interpreted, dynamically object-oriented, open-source programming language that utilizes automatic memory management.
Why you should learn it: Designed to be a highly readable, minimalist language, many say it has a sense of humor (spam and eggs, rather than foo and bar), Python is used extensively by Google as well as in academia because of its syntactic simplicity.
Job availabilities: 811
10. VB.Net (Visual Basic .Net)

What it is: An object-oriented language implemented on Microsoft's .Net framework.
Why you should learn it: Most argue that VB.Net is currently more popular than ever and one of the only "must-learns." "It is currently dominating in adoption and that is where all the work is," said Huckaby.
Job availabilities: 2,090
* All numbers on job availability were pulled from nationwide queries on Dice.com, a job site for technology professionals.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值