以计算机科学的角度谈谈科班出身和非科班出身的一些看法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
以计算机科学的⾓度谈谈科班出⾝和⾮科班出⾝的⼀些看法以计算机科学的⾓度谈谈科班出⾝和⾮科班出⾝的⼀些看法
在当今的计算机⾏业⾥⾯从事计算机软件,硬件等设计开发⼯作的⼈其实有相当⼀部分⼤学时所学的专业并不是计算机科学,我们在此暂且简单的把这个⾏业⾥⾯的⼈分为学习计算机专业的科班,以及其他⾮科班两类。
本⽂意在简单讨论⼀下对于不同问题的想法,这两类⼈到底会有什么区别,⽆意触及任何⼈,所以请不要对号⼊座。
当然科班出⾝的也存在⼀部分没有好好学的,不在本⽂讨论之内,⾮科班出⾝的也有⾃学了相关的全部知识技术,⽽且理解的相当深⼊的⼈,那么本⽂也将这类⼈算成是科班出⾝的。
想写这篇⽂章已经很久了,因为看到了太多的⼈,对于某个具体领域的想法,包括提的问题都是⾮主流的,根本不符合计算机科学的思考⽅式,⼈说没吃过猪⾁,⾄少也要看看猪跑,然⽽好多⼈,好多会,好多问题,浪费了太多的时间。
先说说作者⾃⼰的亲⾝经历吧,笔者在国内⼀所985⾼校获得了⾃动化的本科,信号处理相关的硕⼠和计算机的硕⼠。
个⼈认为其中的区别还是很⼤的,⾃动化专业偏控制更宏观⼀些,信号相关的专业偏信号处理,算法设计,FFT,计算机专业的则更侧重于代码实现,机器学习⽅法等,据笔者所知,即便是这三个如此相近的专业都有如此⼤的区别,那么其他⾮科班出⾝的如果没有⾃学过相关的知识就去完成相关的⼯作,如何保证做得对,做得好呢。
这⾥举⼀个简单的例⼦,前⼏天有⼈在园⼦⾥⾯写了⼀篇⽂章谈了谈DNS的简单原理,对于计算机科班出⾝的⼈来说,这些应该东西应该是完全了然于胸的,⽐如在企业内⽹发现问题了,机器名字和IP对不上,或者对上了总是出问题,怎么去查找,怎么去解决这个问题呢?这时候就是这些原理性的东西发挥作⽤的时候了。
再举个例⼦对于WCF的学习,相信很多⼈都研究过,也看过很多园⼦⾥⾯的⽂章,但是⾃⼰研究的时候,或者遇到问题的时候还总是不知道如何下⼿,为什么呢?究其本质,基础的计算机科学的东西已经被⼈家认为是你必须掌握的东西了,所以⼈家是不会给你讲那些你不懂的地⽅的,直接就是切⼊主题,其实你学不会,并不是因为你不懂WCF,⽽是因为你缺少基础知识的掌握。
其实我有时候就很讨厌这种书,因为不⾃成体系,初学者不适合阅读,这和⽼外的想法就完全不同,⽼外学的东西⼀般都是⾃成体系的。
再举个例⼦NODE.JS, 看下⾯⼀个简单的例⼦,JavaScript难么,不难,那为什么好多⼈还是如此简单的东西都理解不了呢?甚⾄有⼈认为搞NODE.JS的都是⾼⼤上?恐怕还是基础的东西没掌握吧?⼀个就连⽂科⽣都可以去写的很好的语⾔,你还觉得难么?
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
To run the server, put the code into a file example.js and execute it with the node program from the command line:
% node example.js
Server running at http://127.0.0.1:1337/
Here is an example of a simple TCP server which listens on port 1337 and echoes whatever you send it:
var net = require('net');
var server = net.createServer(function (socket) {
socket.write('Echo server\r\n');
socket.pipe(socket);
});
server.listen(1337, '127.0.0.1');
再来谈谈前端的东西,HTML, CSS, JavaScript, 这些及其简单的东西为为什么总是被⼈奉为神技呢?还是因为不懂球吧,呵呵。
当然我在这⾥并不是说前端⼀⽆是处,⼀个好的前端⼀般都是有品位的,有艺术眼光,对于⼀些前端的东西有很多的经验性的东西。
在这⾥笔者想说的是,不管我们⼲的是那⼀部分的⼯作,但是⾄少我们也应该知道其他的东西都是⼲什么的,不要盲⽬崇拜,认为⼲什么什么的都是NB的。
AJAX, JQuery, Bootstrap这些东西只要你理解了基础,就会知道,这些⼯具,对他们只是⼯具,就像⼈类发明了机器代替⼿⼯⼀样,还是挖⼟,但是⼯具让我们⽣活的更舒服,效率更⾼。
总结
说了半天基础是什么呢?举例来说,计算机组成,编译原理,OS,Network, Datastructure, 信息安全和密码学等等,俗话说不积跬步⽆以⾄千⾥,在有时间的时候补⼀补这⽅⾯的东西说不定会有很⼤的收获。
在⼀个浮躁的世界上,可能好多⼈根本还没学会跑就已经开始跑了,但是⽆所谓,you are never too late to learn!
最后借⽤侯杰⽼师的⼀句话结束本⽂:勿在浮沙筑⾼台。