c#发展

注册

 

发新话题 回复该主题

虚拟机LinuxPython与数据库 [复制链接]

1#

1.数据库入门学习哪个好

初学者建议从轻量级的桌面级数据库开始入门。在标准的SQL语句支持方面和关系数据库设计方面来说,桌面型的小型数据库与大中型商用数据库基本是一致的(当然各个数据库实际上是存在比较明显的区别的),主要区别在于桌面型数据库一般通过单个数据库文件来记录数据,在处理多并发时性能下降较快,无法适应中大型应用需求,但作为个人使用或学习来说则非常合适。

最流行的桌面型数据库当属微软的access和sqlite,前者是微软office办公软件全家桶里最容易被忽视但其实非常好用的工具之一,后者则是开源世界中桌面型数据库的王者。个人建议从sqlite而非access开始数据库学习之路,除非你是以office开发或者应用为主的,否则学习access会导致很难向其他系统迁移,因为其中有太多微软自己设计的与标准sql出入较大的地方。而且access的易用性容易导致习惯性依赖,当然其性能也值得吐槽。相反的,sqlite可谓小而精,在很多轻应用场合是可以用于生产环境的,它与python等语言的兼容性也为学习编程创造了条件,而迁移到mysql等数据库时也更容易,因此是初学者的不二选择。

除了上面的介绍,可能NoSQL数据库(比如mongodb)也是一个趋势,但就目前来说关系型数据库仍然是应用的主力,作为初学者依然建议从传统关系数据库开始。

2.物理学专业如何开始学习实用性计算机编程技术

个人建议可以从两本书开始,第一本是《python物理学高效计算》,这一本讲的比较基础,只要从python语言基础开始,也包含一些python在物理学中的应用知识。另一本书是《Python物理建模初学者指南》,这一本包括了一些物理学方面建模的知识。如果还需要学习的话,建议自学一些anaconda方面的教程,因为anaconda是python的发行版中在科学研究上应用最广泛的一个,这个方面《python科学计算》或者《python数据科学手册》都可以。lifeisshort,usingpython。

3.虚拟机如何与外部通讯

这个问题在具体操作上有很多不同,用virtualbox、hyper-V或者VMware等不同的软件做虚拟机,具体操作的步骤和过程都不相同。但在思路上是类似的。但是在具体实现的时候,可能有些虚拟机因为缺少某些功能的原因无法实现效果,因此个人建议虚拟机尽量用vmware较好,这是因为相比较之下virtualbox稳定性稍差而hyper-V个人感觉功能不足。

一般来说,安装完虚拟机之后,如果要直接和外部硬件通讯,需要安装功能增强包(vmware和virtualbox)。如果是采用专用的通讯卡,那么可能虚拟机和物理机都要安装相应的驱动,个人在实践中没有挑战过安装虚拟机和特殊通讯卡协调工作,因此不作详细说明。

如果使用的串口或者usb转串口设备,在虚拟机的设计中有将硬件资源分配给虚拟机的选项,选择需要分配给虚拟机的资源(某个串口或者usb口),在虚拟机中相应资源便可以使用,后续操作和在物理机中相应。

如果采用网络通讯,那么和上述做法是有很大不同的,采用虚拟机的网卡时需要注意物理机设置的网络连接形式,是NAT转发,是桥接,还是虚拟路由的方式。不同形式下虚拟机的ip地址是不一样的,有些接入方式下虚拟机根本无法访问外部网络,而另外一些接入方式下可能会无法满足PLC等设备一般来说通讯时要和上位机在同一个子网中的要求……关于虚拟机连接网络的不同形式,网路上有很多资源,此处不再赘述。

4.初学者如何安装Linux操作系统

如果没有比较丰富的系统运维经验,一键安装linux在操作上有些难度,如果是出于学习目的,电脑性能又足够的话,可以考虑通过虚拟机先安装和试用linux系统,如果贸然把唯一用来学习或者工作的电脑换成linux,而自己又缺乏linux系统丰富的使用和知识的话,很快就会发现很多不便,常用的软件大部分在linux下都没有,这种不便很可能影响对linux系统的使用,因此非常建议先通过虚拟机试用再逐步过渡的方法。

在系统安装方面,还有另一种做法,大部分linux发行版都提供livecd运行模式去,即不真正安装系统也可以先通过在光盘运行进行学习和体验,这需要从linux发行版网站,初学者推荐ubuntu或者fedora(事实上我只用过这俩)下载iso文件刻录光盘或者按照其指引制作安装u盘。然后z系统安装时先选择livecd模式。一般来说,即使是正式安装,也推荐先用livecd方式检查一下硬件兼容性以便及时发现问题或者准备驱动。

如果对桌面系统不慎关心,也可以通过租用云服务器的办法使用linux,而成熟的云服务器供应商的系统都是支持一键安装的。

5.非it专业转行学习数据库运维好还是web前端好

如果水平都一般的话,首先必须选一个方向进行深入学习。而如果不是专业出身的,首选WEB前端,这有几个理由:

1.入门门槛较低。相比较数据库运维而言,web前端入门门槛低,javascript相对浅显易懂,框架学习也比较容易,而数据库却是易学难精,学习曲线比较陡峭。

2.就业容易。即使没有丰富的经验,只要经过培训,web前端也是可以就业的,但数据库运维则不然,试想一下,有哪个组织敢于放心把数据库交给全然没有经验的菜鸟维护。

3.业务面宽。当然数据库方面可以做的工作也很多,但还是不如前端广泛,尤其随着语言和计算机功能的进步,越来越多的功能在前端就可以完成。

4.深入空间也足够。学习前端技术并不是一蹴而就,也是可以不断提高和深入的。相比之下,数据库运维更深入的技术在数据库原理上,普通人反而难以企及。

6.编程初学者为什么应该学python(与c语言或者c++相比)

学python有几个理由。

1.C语言的优点是和底层结合的紧密,在嵌入式系统中应用广泛,程序效率也较高。但目前随着程序员分工越来越细,而硬件系统功能也越来越强大,软件程序员更注重编程的销量而大多数情况下程序运行效率可以放在其次考虑。而python在编程方面比C的优势高的不是一星半点。

2.python是面向对象的先进的语言,而C是面向过程的传统的语言。就像basic一样注定要成为历史,而C在软件领域的很多应用有个主要原因是历史遗留问题,新的程序员还是从python学习效率更高,也更能领会“面向对象”这一软件工程的理念,这一理念是计算机科学多年来最有价值的理念之一。

3.python在计算机科学的主要方面比如机器学习人工智能与大数据等方面均有非常广泛的应用和支持库,这是c语言所不具备的。

与其他语言相比,Java也和C一样在走向冗余笨重的道路,虽然应用非常广泛但败相已露。c++太难上手,对新手来说尤为不易。c#和微软绑定太深,局限性大。go头角崭露但还没能形成大气候。综上所述,学python优于c或者cpp

7.学好C/C++,linux可以从事什么工作

真的要能学好,三者得一可安天下,但是要真的学“好”谈何容易。还是简单说说应用吧,C在一定程度上是传统编程语言与现代编程语言的结合点,虽然有衰落的趋势,但是在绝大多数情况下还是有举足轻重的地位,学好C,可以从事嵌入式系统开发,可以开发python的底层程序(python是用c写的嘛),也可以参与任何用C开发的项目。学好C++与此类似,C++在某些方面可以看作是C在功能和面向对象的扩充,但是C++是出了名的难学,除了有相当基础和理解力,建议还是不要选这条路。至于linux,是操作系统,也有不少分布发行版,要学的好,可以做运维,因为目前世界上大部分服务器都采用linux操作系统,这些服务器都需要运维人员管理的,要是好到一定程度,可以参与linux开发,我想这算是这个问题终极答案了,因为Linux系统创始人Linus就只用C写代码

8.台式机安装linux系统是种什么体验

如果单纯是想体验一下的话,建议还是不要了。Linux系统的长处在于开源和稳定,但是“即使有很多公司与团队付出了不屑努力”,Linux桌面版依然对用户不够友好,这并不是说你没有办法进行办公、编程或者图形设计等工作,而在于大部分日常的其他应用软件出于各种考虑,并没有linux版本,比如,windows深度用户常用的qq,迅雷,百度网盘……等等,在Linux下即使能用这些软件过程也会比较曲折,而且不如windows和macos下稳定,再加上软件版本各种不兼容,需要有耐心愿意折腾才可以。相比之下,Linux在服务器端的应用要远大于桌面端,如果不是专业人士,还是不建议自己折腾。

加一句题外话,如果Linux社区不是现在这样四分五裂,说不定还能有和Windows与MacOS一争高低的可能,现在这样子……

分享 转发
TOP
发新话题 回复该主题