虛擬機、Linux、Python與數據庫入門學習的幾個問題

虛擬機、Linux、Python與數據庫入門學習的幾個問題

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數據科學手冊》都可以。life is short,using python。

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語言所不具備的。

  1. 與其他語言相比,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和mac os下穩定,再加上軟件版本各種不兼容,需要有耐心願意折騰才可以。相比之下,Linux在服務器端的應用要遠大於桌面端,如果不是專業人士,還是不建議自己折騰。

加一句題外話,如果Linux社區不是現在這樣四分五裂,說不定還能有和Windows與Mac OS一爭高低的可能,現在這樣子……


分享到:


相關文章: