Skip to main content

搞软件的四个层次

发信人: zhaoce (米高蜥蜴), 信区: Programming
标  题: 搞软件的四个层次
发信站: BBS 未名空间站 (Fri Aug 29 11:04:26 2014, 美东)

第一个层次,屏蔽硬件
学习各种高级语言,学会摆脱硬件的束缚写代码并做出相应的优化
并以做出一定程度上的效率优化而沾沾自喜,自以为是
觉得所谓计算机科学,不过如此而已
产品以jvm,os,db这些为主要代表
在此之前,软件是硬件的附庸
在此之后,硬件是软件的奴隶

第二个层次,死套框架
学习各种框架的使用,学会抄袭拷贝他人的劳动成果
从重复而且毫无营养的造轮子劳动中摆脱出来
学会如何省力并在短时间内完成任务交差
满足人低层次的欲望
j2ee,ror,django,nodejs这些
在此之前,代码不可维护,自己都看不懂,项目经常失败
在此之后,写出的代码可读,别人能看懂,项目经常成功

第三个层次,大破数据结构
big data阶段,干掉db中落伍笨重的数据结构
形成un/semi structured的结构,并学会简单处理这些结构混乱的数据
并对数学应用有一定程度上感知,不再觉得编程不需要数学
也不再觉得所谓计算只是其他学科比如物理生物统计的工具而已
相反,觉得统计等数学才是计算机科学的曙光和前途
hadoop,numpy,scipy这些
在此之前,数据存之前必需处理
在此之后,数据取出来才会处理

第四个层次,人工智能
应用理论知识让机器有一定程度的智能,让机器学会从训练数据中自动总结
并给出相应的反馈,这么一个阶段,摆脱了语言的束缚
从统计等数学理论中获得灵感并应用到系统中去
尝试着训练机器
spark今年开了一个好头
在此之前,机器是高级工具,是计算器
在此之后,机器是低级生物,是电脑

past -> jvm -> j2ee -> hadoop -> spark(present) -> future
software is the futurehttp://gengwg.blogspot.com/

Comments

  1. 总结的很到位!!! 下面是我给出几个例子来对号入座:


    第一个层次,屏蔽硬件
    在此之前,软件是硬件的附庸
    在此之后,硬件是软件的奴隶

    比如:Oracle 收购 Sun, Google 废掉 Moto, 还有SDN刚刚起步就迫使Cisco开始裁员
    .....



    第二个层次,死套框架
    在此之前,代码不可维护,自己都看不懂,项目经常失败
    在此之后,写出的代码可读,别人能看懂,项目经常成功

    开源的轮子能够吸收分布在全球的开发人员来不断完善一个项目。Github模式就是一个
    很好的开端。比如,Hadoop Big Data框架的正在冲击很多传统的软件公司 (MS,
    Oracle)。微软不得不废掉自己一手打造的Dryad/Naiad框架,全盘接受Hadoop作为自己
    的big data solution. Oracle 今后的日子估计也好不到哪里去



    第三个层次,大破数据结构
    在此之前,数据存之前必需处理
    在此之后,数据取出来才会处理

    比如,PRISM是一个很好的例子,



    第四个层次,人工智能
    在此之前,机器是高级工具,是计算器
    在此之后,机器是低级生物,是电脑

    未来的计算机很可能不单单停留在低级生物或者电脑这个层次上: Transcendence (超
    验骇客)这个电影给了一个比较写实的描述。 霍金更是警告大家 AI could be a '
    real danger'
    http://www.cnet.com/news/stephen-hawking-artificial-intelligenc

    ReplyDelete

Post a Comment

https://gengwg.blogspot.com/

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into ...

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checkin...