程序猿大学生活的真正技能修炼(三)
程序员是一个不断挖掘新技术新知识的职业,不停学习的程度可能比很多职业都要高。当你还是一个学生的时候你或许很难意识到一个真正技术大牛是怎么样练成的,我当然也不是什么技术神,但是我认为大学期间的自我学习修炼至关重要,我希望用我了解的和接触的一些知识向大家传递一些经验,好让大家能够自己提前学会不断更新自己的技术能力。
互联网时代,一切的技术学习从搜索开始!因此让互联网打开你的大门!
电脑“上网”技术
何为防火墙?防火墙对网络出站入站进行了特定的限制,禁止某些网络ip地址之间的通信,所有通信数据包都被丢弃,以至于一些网站域名无法访问。现有的“上网”技术有很多,本质都是实现代理,即通过另一个IP地址进行跳转,有各个层次的一些代理技术可以实现“上网”,不过具体技术也不用太过深究。最常见的也最简单的估计算是vpn代理了,专用的软件有不少,利用一些海外ip的服务器进行vpn代理,不过通常是试用之后需要花钱的,注册账号充会员...。但是如果选择自己购买一台海外的服务器专门给自己做代理来“上网”成本可能会更高,搭建起来也挺麻烦的。不过其实有一些免费而且方便的“上网”技术,我使用的是XX-Net方式:
首先,安装一个谷歌浏览器(Chrome),因为谷歌浏览器和搜索引擎很强大而且XX-Net是通过谷歌代理实现的,上网效果更好。但是安装这个浏览器需要注意的一点是通过国内一些应用市场下载的谷歌浏览器可能经过了处理,所以最好是通过谷歌官网下载,但是谷歌的下载网址又不能访问(会下载失败),所以只能先用另外一个工具:浏览器插件——谷歌访问助手,有了这个就可以先去下载谷歌浏览器了,如果说需求不高只需要访问谷歌的话,也许你靠这个就可以了,但是这个可能会有让你不喜欢的地方。然后你就可以去谷歌官网下载原生态的谷歌浏览器了,安装时最好关闭电脑上的安全软件,避免干扰。然后就是真正的神器XX-Net上场的时刻了,使用XX-Net建议自行上谷歌云申请GAE AppID(用于上网另一个非常好的开源工具是shadowsocks,需要花钱购买流量)。
XX-Net的github网址——XX-Net链接
XX-Net的中文使用文档也在该github项目下方
学习网址推荐
1. 综合学习(包含各类开发语言教程,)
1. 网页前端
前端是使用浏览器与用户交互的编程技术,在学C语言的时候就有过交互的概念,就是在字符界面接受一个输入,然后程序读取输入之后再进行操作,这已经存在了一个前台后台的概念,但是这样的方式只有程序员能理解,所以需要更丰富更合理的面向用户的交互方式。
(不论是不是从事前端开发,对这些知识都必须了解,这不仅是知识面的问题,而且有助于平时解决问题。在进行后台开发时对于与前台接口的编写这是必不可少的)
2. 服务器后端开发
这里有必要提一下服务器端和客户端知识,客户端是发送请求,而服务器端是接受请求发送响应给客户端,从而客户端得到想要的信息。前端只是用来更好的交互,而后端是处理这些请求,处理数据的,数据库操作、算法优化、多进程、多线程等等都是后端的工作。后端语言包括C/C++、Java、Python、PHP等等。
C语言的编程思想是面向过程,每一个子功能都需要一个单独的代码段实体进行实现,即使功能实现中有类似甚至相同的地方,也必须重新构建实现过程。而C++的编程思想是面向对象,具备很好的代码可重用性,有继承的特点,同一类对象只需要调用同一个类方法实现需求,实现新的需求就可以采用类继承的方式只需要编写新需求的代码。 (编程思想在编程中极其重要!比如面向对象,需要重点理解!多练习!)
C语言更多的是底层一点的开发,十分高效,但是开发难度会更大,像Python的官方版本CPython其实就是C语言实现的,所以说Python相对来说是一种更高级的语言。C++更多在于游戏开发领域。 Java是一种静态面向对象的编程语言,应用十分广泛,有很多是用于web后台应用开发。PHP是服务器流行框架里专门的web开发语言,是一种开源的脚本语言。
Python是一种后端开发的脚本语言,也是面向对象的思想,但是与Java等不同的是,它是一种动态的面向对象编程语言,是安全领域、网络开发、网站爬虫的流行语言,模块非常多,也有很强大的web框架,代码书写非常简洁,实用性很强。目前已经更新到Python3。
菜鸟教程(各种语言,设计得挺好)
自强学堂(各种语言,有源代码)
廖雪峰(Python和JS)
W3CSchool(web技术)
C++技术网——(C/C++、数据结构、内核、嵌入式、底层驱动、单片机、汇编等等,学习C/C++强烈推荐)
2. 视频课堂推荐
慕课网(免费、在线练习)
网易云课堂(资源丰富)
安全系列——安全牛(可凭学生身份免费获取收费课程等等)
3. IDC、服务器、VPS
教你如何搭建服务器,虚拟主机、云服务器、服务器开发、进行远端开发、搭建网站、域名、服务器管理、远程桌面等知识。
阿里云【学生认证免费】
腾讯云【学生认证免费】
综合能力学习,学会利用互联网
1. 技术性
作为互联网的从业人员,应该具备互联网的思维和品质特性,会利用互联网进行学习,进行交流。所以我们应该从学生时代起就应该有意识去混迹各种技术论坛、交流社区,去发现新知识、解决问题都可以,慢慢参与就会发现乐在其中。我们应该活在互联网上,日常多去接触行业,比如很多技术性的公众号、技术交流群、技术论坛,这对我们的兴趣培养和经验有一定帮助。之前有看到过某公司招聘要求提供自己的Github账号、博客账号。
Github(Git是一款免费、开源的分布式版本控制系统,及其流行而且实用,Github是一个面向开源及私有软件项目的托管平台,对于个人开发者也是非常流行)
CSDN(中文IT社区,有一些用处吧)
开源中国(中文开源社区,也挺有意思的) 交流社区很多,这里就不一一罗列了,自己去发现吧~尤其是一些国外的问答社区非常棒,只是对新手可能有一些困难。还有一些比较好的公众号,这里也不一一推荐,日后为了让大家接触到更多实用、先进、有趣的技术知识,我会从这些地方推荐一些文章给大家,毕竟我能力有限,分享更多好的技术文章比我瞎误导大家好。大家可以凭自己兴趣再去关注。
2. 社交性
知乎(互联网人喜欢的问答社区)