小谈软件技术

这几年用了不少R、python、C#的知识,web、linux、云计算等都有涉及,玩过不少markdown、交互图、原型工具等极客周边工具,静态网站生成器hugo、七牛云等也试过,github几乎每天都上
说说那些稍微了解的软件技术
R是专业数据分析的,原来的文章讲的很细了。我的网站讲得最多的是R方面的文章,并不是因为我做的R工作最多,实在是因为Python和C#已经被国内高手讲得太多了。
R和Python这种脚本语言的最大好处是简洁方便,要实现一个功能,无需关联太多无关的中间东西。
Python的网络编程能力非常强大,而且跨平台,苹果笔记本和linux上默认都是安装了Python而且用Python支持系统某些功能的。如果我想用C#实现某个网站的自动签到,可能要写几百行代码,python十几行就可以搞定,而且在linux上设置好crontab后,自动化就实现了,简单呀;python的扩展也非常多,比如django可以快速搭建一个网站(Flask更快),还有任务调度celery,Python更像是百变金刚。
说到linux,很多人可能觉得linux好远好高深,其实你平时访问的多数网站,都是linux上跑的,最近流行勒索病毒,你有听到数据机房中病毒的吗?数据机房都是用的linux系统哦。还有电视盒子,安卓操作系统(苹果手机是unix系统,也可以归到linux大家庭吧),也都是linux。linux其实只是因为命令行吓了人,学起来一点不难,2天时间,掌握50个基础命令,足可以自由使用,熟悉linux后,你可能会变成一个极客,因为你发现,原来自动化那么好用啊,管道那么好用啊,more,vim只是Linux的一个默认编辑器哦,如果你觉得vim很牛,肯定更能感觉到Linux到底多么优美强大。
掌握好linux,其实你就有成为编程高手的潜质了,如果你可以很熟练的配置nginx,iptables、git仓库等,会发现其实编程很多时候也就是按照说明文档做配置,然后如果你可以结合一些设计模式做些高难度的事情的时候,一个极客就诞生了。
C#前几年其实有点不温不火,这两年好像突然兴盛了,做unity的都拿了高工资,懂Xamarin的好像都特别骄傲,vs作为宇宙第一编辑器的事实越来越被更多人认可。其实无论用C#或Python,都可以和众多前端框架比如bootstrap、angularjs结合,但是C#可以做的东西更多一些。而且,如果是开发windows平台下的应用软件,实在没有比C#更好用的工具了。高级一点的,wcf通过设置endpoint,可以很容易的扩展传输协议,webapi又很专业很简洁。
想学好C#,从模仿开发应用程序出发也行,但这是从上到下的学法,更好的方法,是对CLR和C#发展历程有了解,知道框架接口这些怎么用,赵劼推荐过四本书,掌握好,就是C#专家了:《C# in Depth》、《.NET Essentials》、《Framework Design Guidelines》、《CLR via C#》
前端这几年发展特别迅速,很多新的框架出来了(虽然基础都是js+html+css),有的做了常用功能模块标准化,比如bootstrap,有的对响应逻辑做了优化,比如Angularjs,还有的重构了全栈机制,比如node.js,还有专门做可视化的,比如D3.js和Highcharts,还有容易上手的Vue和善于处理动态数据的React。相对来说,前端的技术要比后端的容易一点吧,前端更需要艺术细胞,后端更需要耐心和逻辑性,其实后端的东西,用一个框架熟练了,一点也不会有难的感觉了。
最后想说,编程语言很多种,一定要抓住核心,先掌握好基础。实际的编程过程中,很多东西,随时谷歌就可以了,当然,英语要好。

发表评论