编程八部
2017.04.30 13:24:23

对于真相,并非你所见,你见到的只是结论,但结论不总是正确的。

把一些典型问题点大致罗列一下:

  • 我该学哪一门编程语言?Java or C++?
  • 我该去参加Android/iOS培训班吗?
  • 第一门编程语言应该选啥?
  • 做Web应用/移动/前端开发是否有前途?
  • 该不该用、用什么框架?

紧接着你可以在问题回复列表里看到各种各样的答案,而且好像每个观点都有自己足够的理由。

天龙八部众,各自神通,各种经历。投射到编程语言、技术方向,情况又如何?如上困惑由何而生?

我以前有一位同事,挚爱的技术只有SQL、PL/SQL,并全职写这些,最后因为深厚的SQL功底去了NCR;我的一位同学,C写得非常牛,现在好像做着销售;我以前呆过的地方有两个项目组,天天吵着什么是最佳架构和方向,其实我觉得他们的项目用哪个方案都没太大问题,但却在技术上缠斗不休。

我们要的是什么?是要一个真相?还是一个能够让自己满足、但不管对错的结论?

我发现迄今为止的各种结论几乎都是站在自己的想法和经历基础上总结得出,然后拿出来引导别人这样、那样做......

技术流派之天龙八部

比如“我们为什么从Scala回到Java?”、“我们又为什么从Node转到Go?”此类问题,我想你一定可以轻松找到对立面的“我们为什么从Java转到Scala?”、“我们又为什么从Go转到Node?”。

人不能两次踏进同一条河流。

我觉得这些结论都不是该关注的,我们更该关注的是我们要解决的问题——对于你的问题,什么途径能够保证在可接收范围内解决它?这个可接受范围包括了性能、吞吐量、时效性以及质量、开发效率、熟悉程度、成熟程度、难易程度等个人/团队/技术因素,甚至还包括了个人好恶的主观感知。

所以,关注待解决问题,这个是西瓜,之后再选择合适技术流;而首先关注技术流派则是拣了芝麻丢了西瓜。

我相信那些责怪PHP不行的论调,换一批PHP开发者来做同样的站点,可能能够做得非常好。就像这几天火爆的徐雷格斗事件,输赢不在于太极行不行,而在于格斗个体之间的能力比较。所以,“太极行不行?”、“PHP行不行?”肯定永远不会有答案。

此为技术流派如天龙八部,各显神通,各有特性。

这些年来的经历让我明白了编程语言往往不是决定因素、不是罪魁祸首,成败往往而取决于对技术栈的理解程度,以及配套软硬件方案的架构优劣性——曾经一个Linux文件系统类型的错误选择,都差点让我的项目坠入深渊。

开发者之天龙八部

对于程序员的个人选择,当然也是有一些明确的、按部就班的总结,比如前端你首先得学习HTML、CSS和JavaScript这三个东西吧?还有做Java Web开发的,不管你用不用得到,Spring也是需要知道一些的吧?

但是像“第一门编程语言应该选啥?”、“XXX有没有前途?”,还有“该不该参加培训?”、“要用嘛框架?”这些个问题,却是很难找到模式的。

如果你还没进入PHP开发者的行列就先思考“我该选Java还是PHP?”——那真的会很纠结。所以,要织好自己的技术路线网,第一步应该是先结出自己的核心方向——移动开发、Web应用或是前端方向?而如果你又思前想后哪个方向更有前途?——不是说不要想,但是想多了也是没必要,想得差不多就该做了断了——你能想到这两年App开发和前端人才的需求量都有下降趋势吗?

无论如何,作为开发者,重要的是,应该围绕你日常需要解决的问题、你的业务所需,来织网。假设你是一名PHP开发工程师,掌握了PHP,平时用的是Laravel框架,有一天你醒来的时候觉得有必要做个自有框架,那你该不该学点设计模式呢?该不该看看Laravel的源代码呢?显然答案会很清晰。

C/C++的看不起Java,Java的看不起Python,Python的看不起......——程序员眼中有各种语言鄙视链。语言鄙视链一点意思都没有,万不可受此影响,但拿来开开玩笑也是不错的消遣。

等你在自己的技术网的某个节点或某个范围内玩得差不多的时候,不妨多织些节点,掌握些别的技能,让自己的技能网越织越大。

此为开发者之天龙八部,各走各路,各有造化。

不管什么技术选择,还是多想想能在工作上带给你什么?给你个人生活带来什么?不要为了装B的奇技淫巧、纸上谈兵而沾沾自喜。更不要因为自己走的路跟别人不同就心有不安。


总结一下:

  • 学会织好自己的技能网,第一步应该是先结出自己的核心方向;
  • 关注问题的解决。围绕日常需要解决的问题以及业务来织网,来选择技术流;
  • 成败往往而取决于对技术栈的理解程度,以及配套软硬件方案的架构优劣性,而非编程语言;
  • 什么技术流派,什么个人选择,都是众生相,如天龙八部,各自造化和选择,随着自己的路线走就好。

这几天在学习Laravel,也算是为自己的技术路线网再添加一个节点。学习过程有所感知,稍加记录。

Route::get( 'hello/{laravel}', function ($laravel){
    echo "Hello " . $laravel; 
});

(2)

发表评论请先登录或注册