后端程序员的修炼,主要在于编程语言、数据库、服务器配置、网络等几大方面。 编程语言 选择什么作为服务器端的语言(服务器端脚本语言),跟多种原因相关,如操作系统、web服务器、使用程序框架、系统功能、系统的复杂程度及要求,等等。现在,主流的语言,有Java、C#、PHP、Python、Ruby等,而一些新兴的语言,也在崛起,如谷歌的GO语言、Node.js等。但基本上,如果熟练地掌握了一两种主流语言,对于其他语言的学习和使用,是可以触类旁通而快速掌握和使用的,计算机语言学到一定程度,遇到新的语言,基本上是可以借助于开发文档边学边开发的。 当然,于国人而言,还有项语言修炼,是极其重要的,即英语能力。这是没有办法的事情,因为,编程语言、开发工具、各种框架,直至最新的开发手册,最新的计算机专业书籍,基本上都是以英语为主导的。你英语不过关,那就基本上学不到前沿的东西了。真正的高手,是没有什么时间、精力或者兴趣来做翻译的。真正的计算机高手们,应该是看英语原版专业书籍,多过看中文书籍的。 数据库 一是应该有扎实的数据库理论知识基础,二是要掌握数据库建模的基本方式和SQL语言,三是要在实践中熟悉几种主流的数据库系统,如MySQL、MS SQL Server、Oracle等。对于web程序员而言,还有必要了解一些现在相当流行的新的数据库技术及缓存技术,如一些非关系型数据库系统(NoSQL),如MongoDB、CouchDB、Redis等。 web服务器及其配置 几大主流服务器(或者使用容器),Apache、IIS、Nginx、Tomcat,是应该熟悉的。当然,选择什么服务器,跟选择的操作系统、语言、使用程序框架都有关,比如选择微软的.net框架,那选择IIS就是顺理成章的;若选择Java语言,则Tomcat就是通常的使用服务器了(大型复杂的系统,可能需要用到J2EE框架的企业级使用服务器)。 网络的基本知识 一些常用的协议,是需要熟悉的,HTTP、 SMTP、POP3等,尤其是HTTP协议,作为web程序员,是应该深入理解和掌握的,否则,你怎么能对客户端与服务器端的交互机制有深刻的理解呢?另外,对于现在一些新兴的web技术,如Websocket、WebRTC等,也应该有所了解。微信小程序一出来,就支持Websocket,可见互联网巨头们对新兴web技术的关心和推动程度。 另外,互联网的核心协议族TCP/IP协议,也是应该逐步熟悉的,这会帮助你理解整个互联网世界的通讯机制和逻辑,而这往往是软件工程类计算机专业毕业生所欠缺的。 |