㈠ 計算機編程入門應該學什麼語言
首先,對於題主這個問題,我想做個比喻,
你去餐館吃飯,可是你在糾結吃什麼菜,問身邊的人,大部分人給你說,大家都喜歡吃他家的蔥爆肉,說的食材多麼好,廚師多麼拿手,可是你不吃蔥,這道菜你依舊沒辦法享受。這個例子我想表達的意思就是,都應該是選擇一個我們喜歡吃的食材,做出來的菜,才合胃口,就是吃飽了都還可以再吃兩口的那種,如果聽大家的,不和胃口,你就是吃兩口就飽了,豈不是浪費掉了。
選擇學習編程也是一個道理,都應該先去了解各個編程語言的信息,它的就業方向,它能做些什麼,找到一個你比較感興趣的方向,然後根據興趣學習就好,這樣既不會浪費時間成本,也可以讓自己學習的動力更大。
黑馬程序員
硬體層級:就是CPU、內存、顯卡等,不屬於軟體范疇
匯編層級:可讀性差,但是現在有編譯器哈,所以市場匯編語言的工程師需求變數是很少的。高級語言需求量增大了。因為高級語言很好讀;
系統層級:Windows、linux、Mac、OS、Andriod、IOS等等。就是電腦軟體都是跑在操作系統上的。
應用層級:是更加偏重軟體的程序的執行流程和功能的。開發起來體量非常大。
腳本層級:這裡面不涉及樓主上面說的四種語言,我就是略說一下。腳本級語言的代碼很直給的,代碼速度快。但是雖然可讀性強,但是編譯器把腳本語言翻譯成匯編語言的成本很大。
1.java(排名第一)
Java功能強大,簡單易用。具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。由於其語言特性好,框架豐富,常常被應用於企業中,你可能經常會聽到一些關於J2EE,Hibernate等的討論。而且,現如今的安卓手機的標准編程語言也是Java。
**總結**
Java主要用於企業級開發, 安卓手機, 網頁,游戲後台。
2.C和C++(永不過時,越老越吃香)
就可以用於任何開發,效率可以說是所有編程語言里最高的。排除你系統里沒有C/C++編譯器的情況。一般的系統里C一般都具備,但是可能有些是沒有C++編譯器的。
目前,C語言主要用來服務應用,開發底層模塊和嵌入式。盡管C++也可以,但是由於其復雜性,程序員更多的是選擇C語言來做。C++適合一些復雜但又要求高效率的,比如大型游戲等等。
**總結**
C主要用於服務應用,開發底層模塊和嵌入式。
C++主要用於大型游戲開發和一些規模大、性能高的程序開發。
3.JavaScript(凡是能用js編寫的程序,終將使用js編寫)
java VS JS
雷鋒VS雷峰塔
外行人可能覺得Javascript聽起來跟Java有關,實則沒有任何聯系。
毫無疑問,Javascript最廣泛的是在web前端。通俗的說,當網站傳送一些用各種「標簽」代表的格式文檔時後,Javascript負責把這些文檔「轉化」成一些客戶端動態效果。除此之外,Node.JS還用於開發伺服器端。
> nodejs是js的升級版,基於google v8引擎開發的後端語言,可以寫伺服器
**總結**
JavaScript主要做web前端以及伺服器端開發。
4.php(最好的語言,份額被go搶)
PHP是一種通用開源腳本語言,語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,,主要適用於Web開發領域,PHP是web後端的王者。
**總結**
PHP主要用於Web開發,後端較多,也可以用於整個web伺服器,比如論壇引擎。
前端(網頁waiter) ---請求--> 處理(伺服器Server) ---》 返回給頁面
5.python
Python語法簡潔清晰,具有比較豐富和強大的庫,而由於它可以把用其他語言製作的模塊輕松地聯結在一起,又稱其為膠水語言。
IEEE發布2017年編程語言排行榜:Python位居首位。應用比較廣泛,像信息安全、物聯網開發、桌面應用、大數據處理都需要用python。
**總結**
Python主要用於伺服器、物聯網開發,大數據處理等。
6.go
值得一學:
開發速度,執行效率,從高到低: c> go > python
go語言所有執行需要的庫都打包在一個exe中,編譯好的exe程序,直接在第三方系統就可以運行
GUI:圖形化
GUI
難度,從難道易:c > go > pthon
> docker, k8s,區塊鏈
推薦學習思路:
找到喜歡的應用領域--->明確學習目的--->找到重點學習內容--->看視頻學習
有了一定的基礎之後:
找到項目--->按照源碼看思路--->深入理解--->抄源碼--->不看源碼自己還原
在進階之後的提升:
找到帶源碼的項目--->不要再抄源碼而是在項目基礎上實現自己的新增功能--->看書優化代碼
因為不知道題主要學習什麼編程語言,所以暫時思路就是這樣的。當明確自己要學習的內容之後,可以自己做或者找到合適自己的學習路線圖,按照自己的未來發展方向找到學習內容的重點開始學習。
㈡ web前端發展前景怎麼樣
伴隨著互聯網行業的迅速發展,Web前端崗位已經越來越受到大家的重視,Web前端工程師的薪資也日漸水漲船高。不論是薪資還是工作環境,Web前端工程師都是很讓人羨慕的,也正因為如此,已經有不少的小夥伴想要加入到前端領域中去。因此,很多想要學習Web前端的小夥伴們就會詢問:2020年Web開發前端就業前景還好嗎?下面我們就來和我一起看一看吧!
Web前端行業目前來看已經滲透到了到了生活的方方面面,這也說明了Web前端行業的生命力異常強大,並且未來的前途也是不可限量。假如你還在猶豫到底要不要接觸Web前端,那麼我給你的建議就是,與其將時間浪費在猶豫上,還不如認真的拼一把,把時間花在Web前端上。相信你看完下面的內容會對Web前端有個全新的認識。
為什麼說Web開發前端就業前景好
目前的Web前端技術可以說已經是非常成熟了,同時Web前端市場也非常的火爆,並且Web前端的人才目前來看也是異常的緊缺。加之互聯網行業的飛速崛起,目前Web前端技術的不斷成長發展,也已經占據了互聯網的一席之地。
Web前端的薪酬變化
前端開發行業薪資水平呈上漲趨勢,Web前端開發早已不是做帶動畫的下拉菜單的時代了,他們已成為互聯網主宰者,各行業都用其開發互聯網應用。但目前整互聯網行業的Web前端開發工程師緊俏,企業正高薪求才,薪資待遇一漲再漲 !
Web前端人才需求
Web前端技術可以說是越來越成熟了,Web前端開發工程師已經成為發展中的職業香饃饃。說起來幾乎是整個互聯網行業都缺少Web前端工程師,無論是剛起步的創業公司,還是上市公司乃至巨頭,空缺一樣存在。只要你夠優秀,Web開發前端就業前景簡直不要再好!
Web前端未來發展
Web前端的發展其實還是那句話,有需求才會有市場,為什麼那麼多人參加想進入Web前端的行列呢,還不是因為Web開發有市場,企業需要量大。所以與其費盡心思的想Web前端今後的發展,還不如用那個時間好好學習一些Web前端技能將來對就業更添保障。
綜上所述,大前端是個非常有「前途」的工作,薪資待遇也很高,並且根據自己技能深入的不同程度,擁有不同的薪資待遇。想要成為Web前端工程師,最好有一個充分健全的知識布局體系,擁有內容的深度和廣度,等於擁有了企業最需要的技能,到時候你就是企業爭相搶聘的人才,也是行業中的佼佼者了。
所以:2020年,Web開發前端就業前景依然很好。
㈢ 現在比較好用的前端開發工具有哪些啊
1. node.js + npm, 這個是前端工具的一個平台,沒有他們就沒有以下的工具,建立開發環境,下載開發工具,運行開發工具的利器
2. bower, 庫依賴管理器,類似於npm,但針對瀏覽器JavaScript的依賴管理,減少尋找庫,下載庫和升級庫的煩惱
3.grunt,流程自動化管理工具,將你非編程的開發步驟減到最小,grunt watch+liveReload或者grunt connect,可以使得免除你F5無盡地獄,發布和開發各種無壓力。以下大部分開發工具,都有grunt的相對應的插件,也就是說他們都能利用grunt進行自動化運行
5. 本人用less比較多,因為基本無縫兼容歷史遺留系統中的css,(而Sass語法比較特殊,還沒有專門用過,應該開發新系統的css比較好),一套css預編譯語言,可以把less語法轉成css語法,lessc是less語言編譯器,配合grunt less,編寫大型css文檔毫無壓力。
6.Phantomjs,沒有界面的瀏覽器,用js腳本控制其操作網頁。測試,抓圖,網頁流程自動化利器。配合casperjs的語法簡化功能真強庫後,控制Phantomjs就更加容易了
7. grunt PhotoBox, 利用phantomjs抓圖功能和ImageMagick圖片比較功能,在利用live-reload即時刷新功能,可以讓你開發css的時候,快速對n多個頁面進行觀察,看其前後變化。不過缺點也比較明顯,就是速度慢。但比起手動對比來看,還是非常快的。值得css開發時擁有
8. phantomCSS,這個和grunt photobox類似,都用於css開發的,差別是photobox是全局觀察差別,而這個是單元組件觀察差別,它方便你就抓頁面中某一塊元素然後進行前後比較,更加註重細節上的差異,這個比較合適組件開發時候使用。
9. jshint,幫助你快速定位JavaScript的語法錯誤和潛在的跨瀏覽器兼容性問題。在部署你JS前,用jshint檢查一下是沒錯的 。
10.UglifyJS,壓縮JavaScript代碼,使你的JS代碼可以更加快速的載入。有grunt的插件
11. browserify允許你在瀏覽器裡面使用CMD標准模塊,但本人認為它的另外一個優勢是合並代碼,開發時候可以把代碼模塊化,分成很多很多小文件,然後有調理的放到相對應文件夾下,然後最後合成單一文件。本人曾經利用browserify開發greasemonkey代碼,大大簡化了greasemonkey的開發難度和增強了greasemonkey代碼的質量。browserify有grunt插件,這樣又減少的開發步驟。
12. Karma, google開發的一個單元測試運行器,這個自己本身不是一個單元測試框架,而是配合測試單元框架的一個工具。由於前端瀏覽器眾多,就算你有live-reload這樣自動化工具,但是還是要手動打開各種瀏覽器,手動把你的單元測試在各個瀏覽器都運行一遍。這個工具目的是目的就是讓電腦能自動化打開各種瀏覽器,然後把單元測試在各個瀏覽器中自動運行一遍,讓這個步驟也能自動化了。
13.clean-css (grunt cssmin), 我用的是grunt cssmin,但是grunt cssmin實際上背後使用的是clean-css工具,這個工具就是用來壓縮精簡css的,讓css文件大小更小。
㈣ 初學編程應該學習哪種編程語言
如果你想學習編程,雖然選擇第一門編程語言與你想用它來做什麼,最終達到什麼目的有很大的關系,但是事實上某些編程語言的確比其他語言要好學。
選擇一門合適的編程語言作為入門的語言對於培養自己編程的興趣會有很大的幫助。
下面幾種零基礎小白入門的編程語言最佳候選名單。
1、Java
java是互聯網歷史最悠久、最堅挺和最具影響力的編程語言之一。你可以在線上線下、各種平台、操作系統和設備應用的核心部分發現Java的身影。它是一門極具特色的基於類、面向對象的編程語言,被設計為能夠在盡可能多的平台上移植和運行。
出於這個原因,它也是世界上最流行的編程語言之一, 堅持首選Java作為第一門編程語言的學習者必須注意Java迫使你以程序員的方式思維一邏輯和分析式思考, 並且真正把握計算機是如何處理信息的才行。
學習Java可轉向JavaEE分布式開發、大數據+人工智慧、軟體測試等等。
2、Python
當我們討論第一門編程語言以及哪一門語言更加容易快速上手時,很容易會提到 Python。它是一種面向對象、解釋型計算機程序設計語言。
Python語法簡潔而清晰,具有豐富和強大的類庫。它常被昵稱為膠水語言,能夠把用其他語言製作的各種模塊(尤其是PythonC/C++)很輕松地聯結在一起。
Python在設計上堅持了清晰劃一的風格, 這使得Python成為一門易讀、 易維護,並且被大量用戶所歡迎的、用途廣泛的語言。
學習Python可轉向Python全棧+人工智慧、網路安全、軟體測試、雲計算+信息安全等等。
3、C/C++
C++是C的自然演化,這兩種語言大約分別起源於19世紀70年代和80年代早期。C語言是大學裡面教的第一門編程語言,是一門使用非常廣泛,通用的編程語言,它深遠地影響了其後的幾乎每一種語言。
關於C和C++的一件重要的事情是:它們都是計算機科學與編程最基礎的語言。如果你學習它們,它們會使你獲益,即使你之後並不去使用這兩種語言,但它們會使你洞察計算機科學和計算機編程的起源和基礎。
如果你不旨在專業的編程,這對你來仍然可以學習一下。 因為學過它們的人都會說學會了C/C++後,在學習其他語言就會變得很輕松。
學習C語言可轉向智能物聯網+嵌入式開發等等。
4、JavaScript
JavaScript通常我們會把它和Java相混淆,但是兩者根本沒有一點關系。
它是一門腳本語言,是Web的基礎技術之一,但它也存在於瀏覽器之外。 隨著伺服器的強壯,雖然程序員更喜歡運行於服務嘴的腳木以保證安全,但JavaScript仍然以其跨平台、容易上手等優勢大行其道。
JavaScript比較容易學,使用瀏覽器即可運行,雖然它存在已經有一段時間了,但它正在迅速流行起來。學習JavaScript的成就感很高,因為你馬上就可以做一些Web程序了,這是大部分人學習編程的原因。
學習JavaScript可轉向Web開發、HTML5大前端等等。
在這特推薦去我們官網了解一下,看看我們的課程有沒有感興趣的!
希望能幫到你,望採納~
㈤ 請問web開發工具都有哪些
1.Web應用框架
這些軟體是專門設計來幫助網站開發,並使創建網站的Web開發的過程變得更容易。該軟體完全支持Web服務,Web資源和Web
API。這些框架會自動執行與Web開發中的常見活動相關聯的一些進程,從而使Web開發人員的工作變得更加容易。可用的Web開發框架包括ASP.NET,JavaEE,WebObjects,web2py,OpenACS等。
2.協作工具
對於遠程工作的團隊,需要時刻保持聯系和協作。為了提高開發效率,幫助開發者在同一個項目上工作的流程簡化開發流程,以實現團隊的設定目標,市場上出現了很多協作工具,如Slack,Trello,Asana,Jira等。
3.本地開發環境
一個快速的本地開發環境,可以推出取決於操作系統或您正在使用的計算機。有各種各樣的免費軟體,軟體Apache,MySQL和其他打包在一起。這是在本地計算機上最快的一種測試方式,為了方便使用,有些程序還出了攜帶型版本。本地開發環境包括MAMP,LARAGAN,XAMPP和Vagrant等。
4.前端框架
前端框架基本上是一些文件和文件夾,如HTML,CSS和JavaScript等。前端框架通常包含有有準備好的組件,大多數組件都是可以進行修改和調整的,開發人員可以根據自己的開發需求來選擇使用,目前最常見的前端框架是Bootstrap。
5.圖標
圖標對於Web開發人員,尤其是前端開發人員非常重要,它們是Web開發的重要組成部分。上圖中的圖標都可以應用於你的項目,且這其中大部分是免費的。
6.網站速度測試工具
網站速度是決定一個網站是否成功的重要因素。現在的用戶越來越挑剔,大家往往更傾向於載入速度快的網站,對於載入速度慢的網站,大家幾乎是零容忍。另外,SEO做得好的話,可能會帶來更高的轉化率和更好的用戶體驗。Web開發人員可以使用工具來測試他們的網站速度,以確保他們的網站能夠擁有較短的載入時間。
7.文本對比檢查
Diff checkers 可以幫助您比較文件之間的差異,然後合並更改,幫助我們更直觀的看見文本之間的差異。
8.資料庫
資料庫基本上是已經存儲信息的集合,可以進行信息的檢索,管理甚至更新。Web開發人員常用的資料庫有MySQL,MariaDB,MongoDB,Redis等。
9.Web開發通訊
為什麼選擇通訊訂閱,因為開發人員可以利用這些工具節省時間和精,通過這些工具選擇最佳的Web開發和性能主題,而不必自己動手。
10.任務批處理工具/包管理器
任務批處理工具有助於自動化工作流程。例如,你創建了一個任務,可以通過JavaScript編寫的工具來自動化工作流程。除此之外,還可以新建和組合任務,使用任務管理器縮短開發時間,加快開發速率。
另一方面,包管理器也是很重要的,它可以跟蹤所有軟體,確保這些軟體都更新至最新版本,擁有最強的功能。這些工具包括:Grunt,Gulp,npm等。
11.文本和代碼編輯器
文本和代碼編輯器不僅能夠為開發者帶來良好的代碼體驗,而且能夠大大節約網站開發的時間。比較常用的編輯器有Atom,Notepad++,Vim等。之前,筆者也發過程序員票選最佳的代碼編輯器,感興趣的朋友可以戳進去看一下。
12.靈感
對於很多工種來說,靈感都是極為重要的,但是靈感是可遇不可求的,所以一旦有了靈感就必須及時記錄下來。除了我們自己的靈感迸現,我們也可以從別人的作品中提煉出新的靈感。常見的記錄靈感的工具有CodePen
和Dribble。
13.編程語言
每個Web開發工具都有一種編程語言。編程語言被設計為開發人員或程序員和計算機之間的橋梁,並幫助程序員創建我們每天使用的程序。比較流行的編程語言包括PHP,NodeJS,Python,Ruby等。
14.代碼共享/實驗工具
基本上編程這個工作是一個團隊合作,團隊之間要保持親密無間的協作關系,互相檢查對方的代碼有助於更有效的進行程序編寫。代碼共享是現在程序員都在使用的一種方式,常見的有Slack。
15.Git 託管
Git是一款免費、開源的分布式版本控制系統,可以高效的管理大小項目的各個版本,可以幫助開發團隊避免混亂。
㈥ angular + nodejs +mongodb vs php +mysql開發效率哪個更高
首先第一點看你開發的網站項目是什麼,mongodb和MySQL一個是非關系型資料庫一個是關系型資料庫,再接著Node.js 使用事件驅動, 非阻塞I/O 模型而得以輕量和高效,非常適合在分布式設備上運行數據密集型的實時應用。PHP是將程序嵌入到HTML(標准通用標記語言下的一個應用)文檔中去執行。angular是前端框架具有模塊化、自動化雙向數據綁定、語義化標簽、依賴注入等
㈦ 創業項目該如何選擇技術
這些年,許多人問過我下面相同的問題: 我開始了一個新項目,你認為我該使用什麼技術呢? 通常,這些人屬於下面兩類中的一類: 已經做出決定的技術人員 需要鼓勵支持的非技術人員 在一天結束的時候,我懷疑這些人是否真正關心我的答案。或許他們只是想知道我們是否面對相同的問題或只是需要鼓勵支持。 坦白的說,作為一名工程師,我信奉這個說法:偉大的想法可由幾乎任何技術構建。它們都有自己的優點和缺點。無論你選擇什麼技術,你都要為它帶來的風險買單。但真的,你項目的成功與否更多的取決於願景、領導團隊、執行和市場,而並非技術的選擇。 現在,我是一個負責人,我每天做技術上的決斷。當我選擇了一個特定技術時,我要能夠證明這個決定,向我自己、我的合合夥人/員工和潛在的投資者。我根據項目及公司願景做技術選擇。 項目要成功你必須有一個堅定的願景。如果你能將你的願景轉化成一組衡量你每個決定的值,你的前進道路會更清晰,也更容易找到合適的加入你的人。 除了願景,許多初創公司專注於文化。人們都說文化是由創始人、最初的幾個員工及產品本身確立的,然而,技術抉擇對公司文化有直接影響這個說法卻沒怎麼被提到。 你的項目初創可能基於J2EE、Oracle、Perl、PHP、Rails、Node.js或.NET,隨之而來你的團隊工程師將有不同的期望,不同的價值觀,和不同的關注點。這些技術沒有本質上是壞的。偉大的事情都有各自不凡的所在。它們伴隨而來的是一種文化。 幾年前,我遇到一位負責人選擇使用Node.js來搭建自己的應用。出於好奇,我問他為什麼選擇Node。他的回答很簡單:基礎的工程師對Node.js很興奮,所以我可以更容易招募到願意免費貢獻的人,因為他們希望積累相關經驗。 這個決定顯式地定義了工程師文化和團隊成員——那些能夠在這個項目中工作或感興趣這個項目上工作的人。 問一個不一樣的問題 那麼我們不應該問什麼技術是我們需要使用的, 我們應該問我們自己: 這個技術符合我們公司的核心價值觀嗎? 這顯然是個更為之困然的問題,因為你需要切切實實地了解你公司的核心價值觀。這將是創建一個成功項目的關鍵。 你不能盲目地套用技術就像你不用套用別人的商業計劃那樣。這是公司身份的一部分,你的核心價值觀,你的目標,你的團隊,你的期望都是跟別人不一樣的。 關於「這技術在某某公司用得適合啊」這樣的論據是很少有效的。例如Facebook使用PHP,它「在Facebook公司用得很適合」,但是這意味著我們選都應該使用PHP嗎? 技術文化聯盟 要具體描述這些技術社區的特性是很困難的,但我會個你分享我在不同選擇上的觀點與看法。請自由在評論里分享自己的看法,也可以包括關於其他技術社區的。 古典學校: 這里有些是「經典「的語言:他們已經被使用很長的一段時間,並且被證明他們的價值。他們的使用范圍已經很廣泛,但卻引不起別人更大的激情。 注意:我在這沒有提及Perl,因為我並不知道有哪個創業項目是以Perl作為核心技術來創建的(6?)。 PHP 理念: 功能都實現出來,這非常重要 就像互聯網的基礎一般 只要有一個方法去實現它,那麼就不會被破壞 只要它運行起來並且速度很快,那麼其他東西都是沒有意義的 不要太理論化了,我們的語言是非常通熟易懂的,任何人一眨眼的功夫就能上手了。你可以用Java做同樣的事情看看! 面向對象是種落後的想法 常見的使用例子: (在2013年中期) 你的第一個web app Wordpress/Drupal的擴展 個人觀點: PHP擁有它光榮的日子。它真的讓web開發更加簡單,容易上手. 但是, 大概因為大量新的程序員開始使用PHP並且它擁有個不是那麼地堅持自己觀點的社區,所以只有少數人能寫出漂亮的PHP代碼。 良好的擁有規范的代碼例子是很難找到的,並且我甚至不敢肯定PHP擁有自身的規范。這導致了PHP社區以糟糕的代碼質量,缺乏測試,安全問題如同夢魘和像在2000年代初期般的落後品味而著名。 擁有良好規范約定,開發流程和指南的強大的PHP團隊,是可以完成偉大的事情的,但這樣團隊很稀少。 Java 理念: 可移植性 像C/C++般的能力和表現,但卻能夠自動管理內存 更多地關注面向對象 IDE是必須有得 我們要消耗所有的內存,因為它們是一文不值的 線程處理是個好方法! 不要提起Java applets 看看我可愛的JVM! 開源(但擁有者為Oracle) 緩慢但更為安全的開發流程 個人觀點: Java是非常有趣的。在幾年前很多開發者已經厭倦了Java,他們找到了其他新大陸。他們開始轉向一些腳本語言,像PHP,Pyhton,Ruby或者一些更加難懂小眾的語言像Erlang。 盡管如此,Google通過android展示了Java並不像我們腦海里的那麼糟糕(只要你並不是使用J2EE或者Swing)。現在有一種」趕時髦「的趨勢視乎暗示著Java再次變得酷起來了。這些大多建立在兩件事情上: JVM 讓人難以置信高質量的代碼庫 即便如此,對於我們來說,花一整天來編寫Java程序看起來並不是一件吸引人的事。如果你打算依靠Java的堆棧,那麼有一系列的其他JVM語言供你選擇,他們成熟而且兼容Java擴展的庫(例如:Scala, Groovy, JRuby, Clojure),你總是可以混搭使用它們。 自從大量畢業生學習Java後,聘請Java程序員並非一件難事,但是要找那些前期創業公司,高水準的工程師並且對寫Java程序感興趣是一件極具挑戰性的事情。 另外注意:如果你的目標是Android,那麼不用想得太復雜,即使你認為其他JVM語言更好,你也要堅持使用官方的堆棧。 我們仍然有許多的原因在你的創業項目里使用Java技術,但你可能會想同時使用一些的」更快,更靈活「的解決方案(Ruby, Python, Node…)。對於公司跟工程師來說,一個多語言環境帶來了大量的價值,這就是為什麼Java社區看起來節奏很慢,但卻肯定是活躍的。 Java絕大部分是吸引了那些受到了傳統的訓練的工程師,他們嚮往舒適,有重復性,總所周知的編程模式。他們習慣關於使用這種語言,這種工具,這種自然的節奏。或許他們並不是最具有求知慾的開發者,但是他們卻是很可靠的(當然,你要挑選了正確的人)。 C#/.NET 理念: 是更加好的Java 最初是為了桌面與嵌入式軟體設計的 我們比開發Java的小夥伴們擁有更好的IDE 雖然是企業級般的重量了,但是我們提供了大部分Rails很酷的特性 我們有矛盾的開源版本 緩慢但更為安全的開發流程 個人觀點: 當我回顧C#在發布C#5的時候,我不得不驚嘆,我真的對該語言新的特性留下了深刻的印象。單從純粹的語言設計角度來看,C#是有一丁點的領先於Java。在Visual Studio里寫Javascript時的欣悅感讓我感到很驚喜(自從我用VS主要為了C++後,我真的再也沒有期待過什麼了)。 另一件讓我印象很深的是:C#可利用的文檔的質量非常顯著!但是C#並不是開源的,和Visual Studio + MSDN 非常昂貴,並且整個環境都因為licenses跟內存損耗而變得很糟糕,這些事實多少讓這個好印象打折扣了。 微軟正在慢慢地往開源發展,所以有了更多像Azure的開源方案。但是作為一個社區,.NET仍然是微軟開發的中心。作為創業者,你應該考慮下你對開源與擁有企業支持的文化之間對比的看法。 C#大部分吸引了Java群體中的變向者:這些工程師們尋求穩定性和有保障的合同遠勝於追求開源。還有他們可以容忍IIS! 明確的可替代品 在過去的這些年,有兩個動態語言對於新的創業項目來說變得十分受寵:Python and Ruby。這兩個語言實際上有非常多相似的地方。現在Python因為後台apps而著名(因為NLP, biotech, APIs, SOA的因素 )而另一方方面,Ruby因為面向用戶的apps而著名。盡管這兩個語言都受到了一樣的限制(主要是性能跟並發性),但是他們的核心價值和社區有著不一樣的專注點。 Python 理念: 只有一種顯而易見的做事方法 代碼要漂亮簡潔和明確 文檔是關鍵 有較強的語言設計引導 個人觀點: 作為一個更喜歡ruby的人來說,我常常嫉妒python項目文檔的質量。同時python設計的初衷——給你一個正確的編程方式卻又讓我又愛又恨。通常這一初衷對於團隊來說很好,但某些時候可能令人抓狂。 在某些領域python有很多優秀的庫,並且這些庫和你想解決的問題有關,這種情況下python可能是最好的選擇。python開發者知道怎樣去討論交流他們的代碼。他們用文檔記錄所做的事情並且用面向過程來描述他們務實的方法。 但是python在互聯網流行前就已經存在,如果你關注的是並發和高吞吐量,那麼這個並發性很差的動態解釋語言可能不是一個很好的選擇。 python主要吸引的是那些想要一個現代但通過充分驗證的語言的更加務實和經驗豐富的全棧開發者。 Ruby/Ruby on Rails 理念: 為人而不是機器而設計的Designed for humans, not machines 極端的靈活性:如果陷入困境的話,是你的原因,那是你 一切力求簡單、優雅並充滿樂趣 DSL至上,盡DSL 測試非常重要 事情變化很快,保持學習 激情活力的社區 個人意見: 就我而言,Ruby是我幾年來的首選語言。你會發現令人難以置信的、大量的Ruby開源代碼。Rails實在是一個了不起的Web框架,如果你知道如何使用工具的話它讓使大多數的Web項目容易實現。 但靈活性和過快的開發周期也有缺點。隨時准備在你的代碼上投入大量時間以保持其更新以及分離廢棄老的庫。如果不能依靠緩存,一個成功應用的吞吐量往往被缺乏良好的並發支持限制。 Ruby開發者主要是用Rails開發,所以與框架特性相比基本不會去深入核心語言本身的特性。他們往往是充滿好奇心且機會主義的(以一個很好的方式),有些實用主義,關心代碼質量/結構和測試覆蓋率。Rails開發者早期採用它的典型原因是由於該框架本身默認使用的一些新技術(coffeescript、turbolinks、CSS預處理器……)。 Ruby和Rails主要吸引了那些想把事情做得快而優雅的開發者。相比於底層計算細節,這些開發者往往是以產品導向的,他們更關心的目的和客戶價值的實現。 新成員 這是些讓人們興奮的語言/技術。他們代表了運行在「雲端」的編程語言的設計新浪潮。 Node.js (Javascript) Node.js不是一門編程語言,但它是使JS在伺服器端運行最流行的方法。和我對Ruby的大部分評論是關於Rails一樣,相比JS我更關注Node。 理念: 為實時驅動的應用程序而設計,高吞吐量、低延遲 DIY 小的內核,剩餘的內容由社區維護 低耦合 借鑒Ruby/Python 個人意見: 我覺得Node.js很有趣。在技術上Node沒有太多新內容。Python有Tornado/Twisted,Ruby有EventMachine,C有 libevent。 事件驅動的框架已經使用了一段時間,但Node具有兩大優勢:*大多數JS庫是非阻塞*大多數Web開發者不管怎樣都要寫一些JS。 在前端和後端使用相同編程語言的想法吸引了不少人,但值得與否還有待驗證。 Node提供了巨大的吞吐量(只要你堅持IO操作),它很容易上手,而且寫起來很有趣。 由於其本身具有事件驅動性,調試及測試面臨挑戰,回調處理是可維護性的地獄。我希望Node能夠提供一種官方的今後或承諾的解決方案。略顯凌亂的文檔使在現有項目里跳轉時有些困難。 Node的開發者大都是它的早期的接受者,他們更喜歡自定義而不是按慣例創建結構/模式,這樣使他們覺得更舒服。它吸引開發者使用已知的語言(JS)去處理高層的並發。Node作為一個框架處理的水平比經典的MVC更底層一些。Node開發者們也真的喜歡這個在伺服器和客戶端使用相同語言的想法。 Clojure 理念: 實用且符合現代人使用的Lisp 一切皆是數據 並發性,並發性,並發性 讓那該死的可變狀態見鬼吧 能夠很好地與Java協作 稍微靠近科研路線,但並不影響他的實用性 個人觀點: 我最喜歡Clojure的一點是它的lisp精神。一旦你攻克了它的圓括弧和操作符/參數順序,那麼Clojure將很可能讓你重新思考你構建代碼的方式。對於處理數據跟強迫你保持代碼簡短這兩方面來說,它真的很棒並且高效。 讓我頭疼的是我並非擁有足夠的聰明去更多地編寫Clojure。當我嘗試去追蹤那些數據時,我的大腦會出現棧溢出。對於該語言來說異常通常是沒意義的,假如你嘗試解決別人代碼的bug,這將會是機具挑戰的事情因為Clojure本身是復雜的語言,並且可以用宏來拓展。最後,Clojure社區並不是真的面向web開發,Clojure完成的大多數作品都是以數據作為中心的。 Clojure主要吸引了那些處於邊緣,對編程語言有求知慾,面相數據的程序員。如果你尋找有編程語言怪癖的數據處理專家,那麼Clojure將會是吸引他們的好方法。 Scala 哲學: 同時具有面向對象與函數編程世界的最佳優點 讓編譯器為你做一些工作 並發事務 比Java少一些規范,但是目標在於相同或更好的性能 與Java生態系統和諧共存 個人意見: 當目標是JVM時,Scala目前是我所選擇的語言。它的學習曲線陡峭。 知道何時使用 FP 與 OOP是非常復雜的,而且在應對該語言語法本身時也是如此。 那就是說,獲得使用FP的好處,同時又在需要的時候仍然保持OOP,是非常有用的。一旦你「掌握」了該語言的風格,寫Scala實際上是令人愉快的,而且它的社區也非常友好。 Play框架確實很好,它提供了一個很好的替代Rails的選擇,特別是對API開發來說。Twitter的工程師團隊為此提供了許多資源與開源代碼。 目前使用Scala是一個非常安全的選擇。Java開發者會有舒適感並會嘗試這種更加「現代的」語言。動態語言開發者不會感覺太陌生,並且獲得了Java生態環境,性能提升,並發性和永恆性。如果編譯時間不會使你感到沮喪的話,現有工具以及慣例使得在一個成長的團隊中使用Scala非常不錯。 不過就像Ruby,Scala社區的文檔不是很豐富。我真的希望 API文檔 可以重新編寫得更直觀,總的說來就是更有用。但是公平的說,已經有許多非常好的資源了,比如Martin Odersky (Scala的創造者)提供的Twitter的 Scala學校和Coursera的Scala 課堂之 FP 。 Scala主要是吸引了好奇的Java開發者,他們想要一些更現代的東西,就像Ruby/Python開發者想要他們語言的一個更具伸縮性的版本。對於吸引那些想拓展它們現存開發環境的偉大的開發者,以及那些可以充分利用該語言二元性的開發者來說,Scala是一個好方法。 Go 更強大的C 你可以自己管理內存,前提是你不能粗心大意 直觀的代碼更好 豐富的代碼庫 效率很快..對於任何一個部分來說(從編譯到執行) 存在並行編程模式,並且簡單使用 文檔很關鍵 個人觀點: 我真的很喜歡Go(亦稱Golang)。在我使用它幾年之後,我選擇使用它來開發我自己新項目的API。Go或許對於一些人來說有些無聊,但它的簡潔與效率是真材實料的。 Go強迫你更多地去思考你的代碼的結構,你的數據/代碼行為,因為你不能總是堅持面向對象的編程模式。我發現我的代碼總算變得容易調試,結構更簡潔,但有時會重復性比較大(例如:錯誤處理)。 沒有比Go更加方便地開發並發業務的語言了。一旦需要編譯,你的代碼編譯加上運行的時間會比Rails伺服器啟動的時間還快。Go支持一些鴨子類型(ck typing,動態類型的一種風格),這造就了從Ruby(舉個例子)轉換過來顯得頗為簡單。對比起一些腳本語言,它所編寫產品的性能實在讓人覺得驚嘆,並且它佔用的內存很小。 Go被設計為一個人或是一個大團隊都可以為同一代碼庫工作的語言,而且它的身旁有很多很棒的工具值得你使用。 然而,它不是完美的語言。有時第三方依賴庫很讓人頭疼。當你在高水平編程中運用了Go會讓你覺得它的水平太低了。有些語言設計時的決策有時會引起困惑(例子:互動式介面和結構化設計)。 初創公司里,Go看起來在性能和並發事務方面變得越來越流行。我見過很多初創公司用Go替代了Node,而且另一些公司添加了Go應用作為擴展程序。 Go社區里看起來混合了一些老的C/C++學校黑客和一些喜歡低水平語言的年輕人。Go語言和社區的領導者固執的相信讓人們理解他們的想法是很容易的。同時他們也允許你能快速的評估你接受他們哲學後是有多麼的舒適,而且可以發現是否能達到你的預期效果。 Go主要吸引著面向性能和結構體系的開發者。他們想要輕易的實現並發,要達到C的執行速度,也要達到Python/Ruby的開發速度。他們不想在找一個新的有趣的語言,他們需要一個堅定的妥協。 技術驅動理念 技術的選擇會受到理念的影響。你需要清楚而謹慎地權衡你選用的技術是否與企業的價值觀一致。做出正確的決定有助於你從技術細節的糾纏中擺脫出來,擁有更多投入商務運作的時間。
㈧ 作為程序員的你,常用的軟體有哪些
這個就非常多了,下面我以常見的編程開發軟體和資料庫管理軟體為例,簡單介紹幾種,感興趣的朋友可以嘗試一下:
01 編程開發軟體這個要看具體編程語言了,不同語言開發工具自然不同,這里以常見的C/C++、Java和Python為例,簡單介紹3種比較常用的軟體:
這是Windows平台下一個非常專業的集成開發工具,號稱宇宙第一IDE環境,不僅僅只是C/C++,常見的C#、VB等編程語言,這個軟體都能很好支持,智能補全、代碼高亮、語法檢查等功能非常不錯,除此之外,還支持單元測試、代碼重構和分析等高級功能,因此非常適合大型項目開發和維護:
這是一個非常專業智能的Java開發工具,在企業和個人桌面中,有著非常高的使用率和歡迎度,自動補全、語法提示、代碼高亮等功能非常不錯,除此之外,還支持JUnit、CVS整合、代碼重構等高級功能,自帶有Maven和Gradle構建工具,因此更適合Java項目開發和維護,個人使用起來非常不錯:
這是一個非常專業的Python開發軟體,和IntelliJ IDEA一樣,Jetbrains公司的產品,在業界非常流行、受歡迎,智能補全、代碼高亮、語法提示等功能非常不錯,除此之外,還支持代碼重構和分析、單元測試等高級功能,因此更適合大型項目,個人使用來說,也非常簡單,很容易上手和掌握:
02 資料庫管理軟體
這個就非常多了,不同資料庫都有專門的管理軟體和工具,這里簡單介紹3個比較通用的資料庫管理軟體,分別是HeidiSQL、DBeaver和DataGrip,對於日常使用來說,非常不錯:
這是Windows平台下一個非常輕巧靈活的資料庫管理軟體,基於Delphi開發而來,目前支持MySQL、MariaDB、MSSQL、PostgreSQL等主流資料庫,常見的建庫建表、視圖索引、觸發器等基本功能,這個軟體都能很好兼容,除此之外,還支持SQL腳本導入導出、數據備份恢復等功能,對於日常資料庫管理來說,非常不錯:
這是一個基於Java開發的資料庫管理軟體,免費、開源、跨平台,目前支持Oracle、MySQL、PostgreSQL、SQL Server等十幾種主流資料庫開發,建庫建表、視圖索引、觸發器、存儲過程等基本功能 都 可輕松查看和設計,資料庫導入導出、數據 恢復 備份等功能也都非常不錯,對於日常資料庫管理和維護來說,是一個非常不錯的工具:
這也是一個通用的資料庫管理軟體,Jetbrains公司的產品,支持跨平台,但原則上針對個人不免費,常見的PostgreSQL、MySQL、Oracle等資料庫,這個軟體都能很好支持, 數據導入導出( 恢復備份 )、 智能代碼填充、版本 集成 控制等功能非常不錯,對於日常資料庫管理來說,也是一個不錯的工具:
每天常用開發工具:
0.Git:分布式版本控制系統;
1.IntelliJ IDEA:java語言開發的集成環境,IntelliJ在業界被公認為最好的java開發工具之一;
2.Sublime Text:不只是代碼編輯器;
3.Postman:Http請求模擬工具和功能強大的網頁調試工具;
4.DataGrip:支持幾乎所有主流的關系資料庫、多功能的資料庫操作工具;
5.Vagrant:用於創建和部署虛擬化開發環境,配合虛擬機使用;
6.Gradle:自動化構建工具;
7.JIRA:項目與事務跟蹤工具;
8.iTerm2:Mac上的終端工具;
9.Jenkins:持續集成工具。
做了一個寫代碼用了十幾年的人,很多編程的習慣已經養成了,現在就羅列下每天必用的軟體:
直接安裝的linux系統,因為幾乎所有的代碼都是在linux下完成
不同的開發語言,每天要用到的軟體可能不一樣。
我是開發java web的,電腦安裝了很多工具,但是說每天要用到的好像就幾個。
作為程序員使用最多的軟體,莫過於編程開發所用到的軟體編輯器,但是編輯器的種類有很多。我們需要做到的是,找到你最喜歡的編輯器然後熟練的使用它。
同時掌握常見的一些快捷鍵的操作方式,從而來提升我們的工作效率,而不是以軟體而論軟體,什麼都去接觸使用。畢竟軟體是工具是幫助我們提升開發效率。
下面我就列舉我們PHP經常使用的軟體
IDE工具類軟體這一類是開發軟體編寫代碼用的。這一類的軟體非常多,我就推薦一個經常使用的PHPStorm,因為太多的話大家也用不到,也沒有那麼多的精力去熟練每一個編輯器。
PHPStorm是 JetBrains 公司開發的一款商業的 PHP 集成開發工具,旨在提高用戶效率,可深刻理解用戶的編碼,提供智能代碼補全,快速導航以及即時錯誤檢查。可以說是PHP開發程序員必備的神器。
常用快捷鍵如下:
1.復制快捷方式
F5 復制文件/文件夾
CTRL+C 復制
CTRL+V 粘貼
CTRL+X 剪 切,刪除行
CTRL+D 復制行
CTRL+SHIFT+V 可以復制多個文本
2.自動代碼
ALT+回車 導入包,自動修正
CTRL+ALT+L 格式化代
碼CTRL+ALT+I 自動縮進
CTRL+ALT+O 優化導入的類和包
CTRL+SHIFT+SPACE 切換窗口
CTRL+SPACE空格 代碼自動完成,代碼提示,一般與輸入法沖突
CTRL+ALT+SPACE 類 名或介面名提示(與系統沖突)
CTRL+P 方法參數提示,顯示默認參數
CTRL+J 自動代碼提示,自動補全
CTRL+ALT+T 把選中的代碼放在 TRY{} IF{} ELSE{} 里ALT+INSERT 生成代碼(如GET,SET方法,構造函數等)
3.運行
Alt + Shift + F10 選擇的配置和運行
Alt + Shift + F9 選擇配置和調試
Shift + F10 運行
Shift + F9調試
Ctrl + Shift + F10運行范圍內配置編輯器
Ctrl + Shift + X運行命令行
4.其他快捷方式
CTRL+Z 倒退(代碼後悔)
CTRL+SHIFT+Z 向前
CTRL+H 顯 示類結構圖
Ctrl +F12 文件結構彈出
CTRL+O 魔術方法
CTRL+/ 注釋//取消注釋
CTRL+SHIFT+/ 注釋/*...*/
ctrl + '.': 折疊選中的代碼的代碼
ALT+ / 切換代碼視圖,標簽切換
5.其他快捷方式
CTRL+Z 倒退(代碼後悔)
CTRL+SHIFT+Z 向前
CTRL+H 顯 示類結構圖
Ctrl +F12 文件結構彈出
CTRL+O 魔術方法CTRL+/ 注釋//取消注釋
CTRL+SHIFT+/ 注釋/*...*/
ctrl + '.': 折疊選中的代碼的代碼
ALT+ / 切換代碼視圖,
資料庫相關常用的工具 Navicat for MySQL是管理資料庫的操作工具,都是可以連接遠程的雲資料庫。方便簡化開發,還可以手動備份、可視化的sql分析。
常用快捷鍵:
ctrl+q 打開查詢窗口
ctrl+/ 注釋sql語句
ctrl+shift +/ 解除注釋
ctrl+r 運行查詢窗口的sql語句
ctrl+shift+r 只運行選中的sql語句
F6 打開一個mysql命令行窗口
ctrl+d (1):查看錶結構詳情,包括索引 觸發器,存儲過程,外鍵,唯一鍵;(2):復制一行
ctrl+l 刪除一行
ctrl+n 打開一個新的查詢窗口
ctrl+w 關閉一個查詢窗口
ctrl+tab 多窗口切換
伺服器連接軟體XShell6是非常強大的SSH遠程終端客戶端,幫助我們連接遠程的Linux伺服器來進行操作。
粘貼:Shift+Insert
歷史 命令編輯ctrl + p 返回上一次輸入命令字元
alt + > 返回上一次執行命令
其它
ctrl + s 鎖住終端
ctrl + q 解鎖終端
ctrl + l 清屏相當於命令clear
Tab鍵,快速補全命令
輕量級文本編輯器Notepad++。這個很輕量,打開一下文本非常的方便。
常用快捷鍵
Ctrl+C 復制
Ctrl+X 剪切
Ctrl+V 粘貼
Ctrl+Z 撤消
Ctrl+Y 恢復
Ctrl+A 全選
Ctrl+F 鍵查找對話框啟動
Ctrl+H 查找/替換對話框
Ctrl+D 復制並粘貼當行
Ctrl+F2 切換書簽
F2 轉到下一個書簽Shift+F2 轉到上一個書簽
F11 全屏模式
前端 :
visual studio code
後端:
pycharm
IDEA
安卓:
android studio
瀏覽器:
谷歌
火狐
資料庫管理:
navicat
遠端鏈接:
fileZilla
xshell
electerm(mac上使用)
流程圖設計:
xmind
processOn
筆記:
為知筆記(付費一年60)
有道雲筆記
虛擬機(容器)
VMware Fusion(mac上)
docker
其他:
postman
jmeter
作為一個12年開發經驗的前端程序員,我來聊聊每天必用的幾個軟體。
寫代碼自然離不開 編輯器 。目前我主要使用的是微軟的 Visual Studio Code 。VS Code比較輕量,功能足夠應付日常開發所需,跨平台,而且完全免費 。因為之前長期使用Visual Studio在Windows平台上做開發,後來技術棧變化,經常需要在Linux和MacOS上做開發,VS Code就成了我順理成章的選擇。後來乾脆在Windows上也用VS Code了。目前整個團隊都已經被VS Code圈粉了。其它類似的如Sublime Text(需要付費)和Atom也有不少人使用。
因為是團隊開發, 源代碼管理工具 自然必不可少,而 git 是目前最熱門的一個。我們公司也不例外,幾年前從Perforce遷移到了 GitHub企業版 (和公眾版本UI完全相同)。平時的代碼審查也都是在GitHub企業版上完成的,不再使用單獨的代碼審查工具。有些不習慣使用命令行方式的同事使用 SourceTree 完成日常的代碼分支管理和提交,而我則比較熱衷於命令行方式。VS Code也提供了比較完善的git集成,但因為習慣的原因,除了直觀比較不同代碼版本的差異,我一般也不用VS Code執行git操作。
作為一個Web前端, 瀏覽器及前端調試工具 自然不可或缺, Google Chrome + Developer Tools (F12) 自然是首選。使用Developer Tools,可以對JavaScript進行調試,監控HTTP請求/響應,分析CSS計算問題和JS性能問題。 Chrome下還有很多功能強大的插件,個人比較常用的包括React Developer Tools、PostMan、Proxy SwitchOmega和AdBlock。當然,因為經常面對瀏覽器兼容性問題,Firefox、IE、Edge、Apple Safari以及各自的Developer Tools都是免不了要用的。
團隊目前使用Scrum模型,自然需要一個做 任務規劃和質量管理 的工具。我們採用了 JIRA , 每天的站會(daily stanp meeting)都會對scrum看板(board)進行更新。
遇到技術問題,自然免不了要上網查找資料。 Google 的使用頻率非常高(需要科學上網)。大部分問題都能在 StackOveflow 上找到線索,但有時候也不得不跑到大名鼎鼎的同性交友網站 GitHub 上看源碼。 MDN (Mozilla Developer Network)對於前端開發也是不可或缺(此處鄙視一下w3cschool,上面到處是錯誤知識)。
其它如node.js/npm、docker等,因為和具體的技術棧相關,就不具體展開講了。
作為一個開發人員,你每天使用什麼軟體呢,歡迎說說看。
盡管我是後端出身的,不過也經常寫前端代碼,甚至還用C#/C++參與過一些客戶端開發,自認為也算是一個Web全棧工程師。隨著前端技術的不斷進步,現在的前端已經不再是寫寫頁面這么簡單了,很多邏輯在前端就寫了,我建議每一個出色的開發者應該盡可能對前後端都能有不錯的掌握。
今天給大家推薦一些我認為前端和後端開發都需要經常用到的一些軟體,這裡麵包括了查詢資料工具、原型工具、文本編輯器、版本管理工具。
原型工具 不管前端還是後端,尤其是前端程序員,在跟產品經歷溝通之後肯定會要查看原型的,方便自己在開發過程中使用,基本上大公司輸出的原型都比較規范,除非你遇到張小龍這種級別的大神,哥們兒直接盯著你做了。
目前主流的原型工具主要有Axure、MockPlus、墨刀等,其中Axure依然是應用最為廣泛的原型工具,大多數開發者也都應該用來看原型。
文本編輯器 不管是前端還是後端程序員,當然前端程序員就不說了,在WebStorm出現之前,沒有一款真正可以叫做IDE的前端開發工具,那麼基本上文本編輯器就是前端程序員最重要的編程工具。同樣後端程序員即使不需要寫前端代碼,文本編輯器也是必備的,您不需要每次看代碼都打開龐大的集成開發環境,像IDEA這種比較耗費資源的,平時查看代碼啥的完全沒有必要,何況你還經常要看一些前端代碼。
當然你比較習慣Linux/Unix下開發,Emacs/Vim可能是你用得比較多的文本編輯器,還有UltraEdit、Sublime Text、EditPlus、Atom這些老牌的文本編輯器,不過現在我覺得每個程序員都應該下載一個Visual Studio Code,支持的語言比較多,而且插件非常豐富,是微軟官方支持的開發者工具,開源免費而且顏值非常高。
查詢資料、版本管理工具不用多說,每個程序員都要學會很好的使用Google、Stack Overflow兩個工具,可以說你日常開發當中可能遇到的問題,通過這兩個工具你全都能找到解決方案。
另外一個是Dash文檔管理工具,Dash是一個非常好的開發者幫助文檔工具,這個工具的好處是給所有的開發文檔做了一個整合,C/C++、Java、PHP、Python、Latex、Emacs Lisp、Haskell、JavaScript、Go語言等文檔都能夠在這個工具當中下載使用。
最後一個就是版本管理了,SVN和Git依然是目前使用最為廣泛的版本管理工具,不過就使用來說我還是推薦Git版本控制系統,可以說這個時代Git就是最好的版本管理工具了,尤其是開源時代、互聯網時代,Git已經成為了最重要的版本管理工具,不管是命令行管理還是使用Github等客戶端工具,堪稱完美。
入行十一年,現在主要做一些管理和架構方面的工作,也會做一些Coding,主要是一些新技術的研究和「踩坑」。
編輯器首先是EditPlus,這是一個文本編輯器。最常用的兩個功能:正則表達式查詢和文件夾內所有文件內容搜索。
平時經常需要看一些系統日誌,甚至要從好幾天幾十個日誌文件中找到內容,這個軟體很好用。(原諒我們沒有上日誌平台)
然後就是IDE啦,我還是喜歡用Eclipse,有時候會用STS(Spring Tool Suite),它也是一個被包裝過的Eclipse,方便做一些Spring框架的研究。
一個是DbVisualizer,凡是具有JDBC資料庫介面的資料庫都可以管理,什麼資料庫都能連。
還有一個是SQLyog,這是一個快速而簡潔的圖形化管理MYSQL資料庫的工具,我只用裡面一個功能,就是數據的導入導出,效率非常高!
大部分項目只對外提供介面服務,所以介面測試工具少不了,我一般使用SoapUI,WebService/Rest都可以進行測試。
每天肯定會用的肯定不止上面幾個,還有版本控制工具svn和git,都會用到是因為單位svn現在開始往git遷移。
因為用的Scrum敏捷開發流程,所以JIRA、Sonar、Fisheye這些也是都會用到的。
Maven也不用說了,幾個項目基本都是基於Maven構建的。
必用的基本就是這些,只要電腦開著,這幾個軟體基本都是打開狀態。
㈨ web前端需要哪些技術
所有知識框架,那肯定是一個結構型的展現,就是一棵樹。web前端的知識點非常多,也非常散,需要好幾層結構來組織這個體系,否則就會顯得很亂。那麼如何組織、把誰和誰放在一塊兒?這是真正值得我們去思考的,你也可以自己來思考一下這個問題。
在我總結的這個知識框架中,首先第一層我劃分為:理論知識,類庫框架,編碼開發,運行環境。如下圖:
首先,你要知道web系統雖然大部分是在瀏覽器下運行,但是js可能會被運行在node環境。
在瀏覽器環境下,最重要的兩點是:web安全和性能優化。需要注意的綱要我都列出來了,如果想了解推薦兩本書《白帽子將web安全》《高性能網站建設指南》
8. 其他
以上這些是全部的知識體系。如果你想成為一名合格的、讓leader喜歡的程序猿,你除了知道這些知識之外,我覺得還需要以下幾點:
要了解敏捷軟體開發流程(如SCRUM)和項目管理知識(如考取PMP),這也屬於一種「軟」知識吧;
要學會在網上和別人交流(博客、qq群、開源項目),交流能讓自己看到自己的不足;
要學會自我反省和自我學習。就像我現在一樣,試著自己總結一下屬於自己的東西,隨時反省隨時進步
㈩ 桌面端開發都用什麼語言,簡單分析下這些語言的優劣勢對比
目前,最優的選擇有四個:
1.如果只在win下使用,.net form是不二選擇,可謂是又快又好,企業應用或定製開發都是相當好的,初學者也可以入手。
2.electron,跨平台。需要會前端,必須熟悉js、css和html。屬於前端人員大殺器,如果是初學者,需要一下子學三樣東西,再加上electron的進程間通信,可能會被搞懵。
3. qt5,可以使用qml(js語法)進行UI編程,但是需要懂c艹,但是寫軟體相當快,還可以寫安卓、ios、Linux、嵌入式中的應用。
4.flutter,剛剛正式支持win平台的軟體開發。谷歌出的這個東西,適合沒有基礎的初學者,因為是一個全新的體系,全新的語言,寫ios、安卓非常高效,之後還會兼容h5。如果是初學者可以跟著走,值得嘗試。但是新東西總有一些坑。
正式項目跨平台建議electron或qt,只用win平台強烈建議微軟自己的net。個人技術嘗試建議flutter。
桌面端開發跨平台的,如果你是輕量級的項目,那麼我推薦你用electron, 目前使用Electron來開發的桌面應用非常多,我們最熟悉的比如Atom,VScode等等。
而且在github上也能找到許多應用使用了electron。
electron是Node,Chromium,html,css,js的結合框架,這就需要你有一定的前端基礎。其實只需要了解一下electron的API就行了,其他的就像你在做web是一樣的。
這種方式最大的缺點就是性能,還有透明窗口也有問題。所以在做需要性能方面佔有很大成分的項目時,並不推薦使用這個方式。
那麼其他的,就是最近幾年使用比較多的windows directui框架,但它不是跨平台的。
那麼就引出了qt,作為c++跨平台的界面框架,這個上手的話,我覺得對一般人是有難度的,因為首先需要扎實的c++功底,其次你要熟悉控制項的製作原理,因為有時候你需要定製自己的UI控制項。它現在在嵌入式,軍工領域非常受歡迎。但是整個庫非常臃腫龐大,而且開發界面的效率也非常低。如果來做互聯網項目,迭代更新的速度根本就跟不上。
目前都只有大公司會採用,像maya這種生產力型的應用很多是qt做的。
還有一種是直接使用Cef加js,比如網易雲音樂,就是這么搞的,但是很多和系統平台的交互介面你需要重寫,等於是需要自己造輪子。工作量大,目前沒有適合的框架給你套用,也需要扎實的c++功底。
其實pc端的應用基本也就windows會火一些,再加一個macos,那麼選擇qt應該會很好一點,畢竟你自己造一個跨平台的框架,太費時。總之,做跨平台就意味著,不可能做到既有效率又完美的實現各種功能,許多都要自己摸索。
win桌面端直接上visual studio啊!然後你熟悉什麼語言?vb.net,c#,c++都有相應的win桌面工具。直接用就好了,非常好用
編程語言這種東西無所謂,只要能用啥都可以。 主要看你老闆需要和你會用什麼語言。
比如 我用AS編安卓程序,當然用JAVA。不過我後台最開始用ASP和ASP.NET來做,現在換PHP了。桌面端用QT或者VB做。 涉及單片機部分控制也用C。
現在做跨平台的了 開始以QT為主了。
只要能達到目的啥都可以。
學會1-2種 換其他的也不是很難。
對初學者來建議學C起步吧。
精通一門,重新學個語言入門也就1個月的事。
PC桌面程序,如果簡單一點的,用pyqt5+python的開發難度和周期都比較現實一點
會C++ 用Qt5 非常不錯 寫代碼效率很高
會js 用atom使用的那個框架
會Python用PyQt 寫代碼很快
會java用JavaFX
看語言咯
還可以用delphi,其firemonkey框架發布8年時間,支持跨平台:win,安卓,ios,macos,linux,後續支持webassembly,界面是控制項拖拽布局所見即所得,開發效率較高。編譯生成的是機器碼,編譯速度快,調試方便,其生成機器碼運行效率較高,支持x86,arm的32位64位處理器。支持跨平台3D界面,藍牙通訊,定位,重力,攝像等,支持多種SQL,NoSQL資料庫。單個開發工具實現前後端開發,跨平台開發。適合個人和小公司用一套工具實現大部分開發需求。
主要有以下幾種技術
### Duilib
#### 簡述
Duilib是在Windows平台上使用最廣泛的類庫,使用C++和XML混合編程,國內很多計算機企業都喜歡使用這個類庫,可能是由於他的技術許可比較寬泛的原因。
適合於界面比較簡單的軟體,視覺特效豐富,局限於Windows的平台。例子:360電腦管家。
#### 優勢
#### 劣勢
### Gtk、Qt或WxWidget:
#### 簡述
三種基本可以做到跨平台的技術,使用C/C++開發,使用者廣泛。其中WxWidget使用了API嫁接方式,Qt和Gtk(包括各種綁定技術)使用自繪技術。
結構嚴謹,軟體可以做的很大很復雜。例子:WPS和Maya。
#### 優勢
#### 劣勢
### Electron:
#### 簡介
使用Web技術開發桌面軟體,基於Chromium(Chrome)引擎,使用JS編程語言,絕大多數使用者都是原來的網頁開發者。
絕大多數都是愛好者使用,處於「勉強可用」的地步。
適合大面積靜態展示型軟體使用。例子:網易雲音樂。
#### 優勢
#### 劣勢
### QtQuick(QML)
#### 簡述
Qt公司開發的一款基於OpenGL的圖形類庫,有顯卡加速,類似於Duilib。採用了C++與QML混合編程。QML類似於JavaScript語言。
QtQuick下一個版本在Qt 6上更加強大,業界期待已久。
#### 優勢
#### 劣勢
### Atk、Swing或JavaFX
使用Java語言開發軟體,有JDK加持業界積累的眾多Java類庫支持。有不輸於VS的IDEA加持,本應該更棒,只是現在已經式微了。
絕大多數使用者都是企業開發(不追求界面美觀)、愛好者(開發順手)。
### WinForm、WPF或Xamarin:
使用C#開發,WinForm和WPF局限於Windows平台。有VisualStudio加持使用很爽。
### Flutter:
使用Dart語言,新類庫,bug可能會很多。
### SwiftUI或Cocoa:
蘋果平台原生界面技術,macOS平台內建支持,不是macOS專用軟體不推薦。
### Win32:
經典Windows 平台API,絕大多數只有一些老軟體還在使用,不是維護老軟體不推薦。
winform,不二選擇
webview2,作為一個瀏覽器控制項嵌入在桌面應用中,支持.net core和.net framework