從開始入行做編程前前後後經歷了差不多有5種左右的主流的編程語言,留下最深印象的還是第一門編程語言,後面編程語言基本上按照套路走了,遠沒有第一次學習編程的拿著興趣勁,第一次安裝完linux系統在上面寫完第一行hello world,當天興奮的都沒睡好覺,好像擁有了全世界,後來慢慢在linux上面寫一些簡單的C語言程序,學到函數的時候覺得能看懂C語言所有代碼了,於是借著興奮勁頭去圖書館弄了一本linux內核源碼解析,帶著興趣勁真還咬牙搞了100多頁,後來實在看出下去了,才知道人外有人天外有天,學會了基本的語法距離真的高手還差的遠。

後來隨著學習C語言的深入,特別是學習到指針,然後切入到鏈表的學習更是一頭霧水,中間還賭氣放棄了一週的時間,後來覺得這麼做實在對不起自己又開始拿起來死磕了,徹底的明白還是在網上找到了西電林銳博士的C/C++算是系統掌握了,後邊再遇到指針基本上都是一路趟過,倒不是這本書有多神效,可能在某個階段看到其中一個細節點就把之前缺失的東西給補全了,當然要能達成這種效果,需要堅持不懈的努力。

技術部有個同事,在公司呆了也有幾年的時間了,崗位也換了幾個了,最後下定決心想玩技術,開始半年的時間幾乎什麼都不開竅,有多少次機會想換掉,後來還是心軟再給次機會,有一天在搞代碼的時候突然做了很多讓人很意外的事情,好像明白了很多東西,現在慢慢也能獨立做一些功能模塊了,再次驗證一個道理一個人即使看著很笨只要持之以恆的做一件事,早晚會有開竅的一天。其實這個和學習第一門編程語言是一樣的道理,只要堅持下來學會了後邊切換到別的編程語言是水到渠成的事情。

說到精通編程語言這是一件極其難做到的事情,基本上編程語言能達到熟練做項目的程度就夠了,而且再去切入到第二種編程語言的時候即使很難也會覺得比第一次開始學習要簡單許多,接觸到的第二種編程語言是C++,當然C++的語法學習是在學校中完成的,在企業真正開始做C++項目上來就傻眼了,這些泛型編程類的東西在學校壓根就沒接觸過,只好老老實實的把基礎再次拿出來研究去看,即使這樣學起來也比之前要快很多,畢竟已經有C語言做鋪墊了,差異在語法細節以及面向對象編程思想上,過渡期只用了很短時間,就跟上大部隊了。

用第三種編程語言做項目,用的是Java語言,有了C++做鋪墊學起來基本上沒有多少障礙,基本上不到一個月的時間就能跟著做項目了,當然一種編程語言不是能隨隨便便就能搞透徹,這都需要時間的磨練,只不過入門相對容易點罷了,因為任何一種編程都有其內在的東西。編程學到一定程度,編程語言就是工具般的存在,核心東西就是編程思想和演算法設計思想。但懂了一種編程語言之後學別的會快很多這是事實。

希望能夠幫到你。


作為一個資深非專業程序員,我很負責任的告訴你:如果精通了一門編程語言,再去學其他編程語言當然是要容易得多。但是,HTML5是一門標記語言,算不上一門編程語言。

我做JAVA,中途做過C#和node

我大學畢業後就一直做java開發,後來到新公司後,因為公司原有產品是用C#做的,所以也在用C#來做開發。

對於平時用熟了java的springMVC框架的我來說,C#的MVC框架並沒有什麼不同,甚至還比springMVC更簡潔一點。可能花個一週的時間,就能夠熟悉C#這門編程語言和java不同的地方,例如使用的ide不一樣,有一些關鍵詞不一樣。

之所以能夠快速的熟悉C#這門編程語言,是因為java和C#都是面向對象的編程語言,它們的語法極為類似,並且在做web開發的領域裡面,MVC框架的原理也是共通的,所以切換起來並沒有什麼難度。

我雖然熟悉JavaScript,但始終無法勝任html渲染

雖然我平時大多數時間是在做後端開發,但是人手不足的時候也會參與到前端的開發工作當中。這麼多年來,我的前端技術水平都停留在「複製別人的頁面,然後改成我自己需要的樣子」這個水平上,如果要我用html+css自己渲染一套web風格來,仍然很困難。

我覺得,編程語言語法相通,更重要的是編程思維和編程邏輯實現,而標記語言更注重內容呈現、頁面佈局與層次等視覺效果。所以我覺得二者並不相通。

我是程序員愛編程,一個資深非專業碼農,科技領域段子手!如本回答能夠討得您的歡心,勞請點贊、轉發、關注我,如有不同看法可以在評論區留言,謝謝!


這種說法並不是完全正確的,也是要分不同的編程思想,比如說java和c這兩種編程語言的思想是不同的,java是面向對象的編程思想,而C是面向過程的編程思想,然而,HTML5是一種腳本語言,也是上手比較快的語言,如果這是學會HTML5、CSS的話,再學java比小白容易些但是還是有些難度的,如果會一些js的話,就不一樣了,js的有些東西是和java很相似的,起碼是基礎的東西學起來會比較快一些。

我在學校的時候跟著老師學習的是python和前端的一些東西,前端並沒有學一些框架,只是學習了HTML、CSS和JS,Python是用作後端。才開始用python寫了一個socket客戶端和伺服器,有一些自豪感,感覺python這門語言挺簡單的,我在python的期間上課是有java的,在學習完java之後再學python感覺很輕鬆。但是在學習python的後端框架django的時候,看了第一遍視頻,什麼也沒有看懂,看第二遍的時候,我開始記筆記,並且跟著視頻敲, 在進行做項目還是要看著筆記,哪一個文件寫一些關於什麼的代碼,就一點點兒揣摩,出錯誤了,就一個一個調試,不知道怎麼解決就百度bug信息,一個問題一個問題地糾正,做完項目需要的東西之後,就找有關python django框架的視頻項目案例,我也不知道什麼時候突然開竅了,回過頭來感覺這個東西還是挺簡單的,但是不知道那個時候問什麼腦子就是想不明白。

精通一門語言不是可以做項目了,就是精通了,或者熟練使用了就是掌握了,精通一門語言是很難的,可以熟練做項目只是其中的一小步,還需要揣摩人家寫的框架源碼,不需要都理解,只需要在做項目的時候,能夠根據官方封裝的庫,加上自己項目的需求知道怎麼樣的思路去做出來。

在學習的過程中要堅持走下去,迷茫的時候不要指望別人會幫助你,別人你是情面,而不幫助你是應當的,也不要抱怨,遇到問題的時候靠著百度可以科學上網那就用谷歌,一點點解決,只有這樣才能慢慢提高自己。

還有就是在編程中,不用只為了寫代碼而寫代碼,那只是代碼的搬運工,早晚被淘汰,軟體這一行業是創新性的,而且更新換代特彆強,一個是要培養自我學習能力,另一個是要養成經常學習的習慣。雖然更新換代特彆強編程語言無非分面向過程的與面向對象的,掌握一種編程思想還有就是學會閱讀源碼,現在之所以項目能夠快速的開發就是有很多的框架出來,利用框架打造項目是非常快的方式,要想學會熟練使用框架,就要學會閱讀源碼,然後通過項目熟練使用這些框架。

演算法同樣在編程中處於非常重要的地位,數據結構和演算法能夠讓你的代碼更加的健壯,讓別人閱讀你源碼的時思路更加清晰,而且讓你的代碼以一種佔據內存最小的方式實現相同的功能,通常是犧牲代碼執行的時間來換取代碼執行時佔據更加小的內存空間。

以上就是我在學習語言的過程中的拙見。謝謝!!!


看到了這個問題,很能引起共鳴,因為和當年自己的經歷很相似,有點區別的是當時可能談不上精通一門編程語言,對於軟體開發來說,精通一門語言談何容易。回到正題,先拋結果,精通一門語言對學習其他編程語言絕對是有幫助的,但從根本來看,語言只是媒介,基礎知識,設計架構模式更重要。

語言的共性

記得當初入行的時候也是從Web前端開始做起,那時的前端沒有現在這麼多技術,僅僅是Html+Css+javasrcipt,這套技術組合裡面,真正稱得上語言的也就是javascript,當時找了些書籍學習了下,又結合實際項目就慢慢搞熟悉了。後來由於工作需要,後臺開發也要兼顧,所以就開始研究C#語言(因為我們的後臺基於

.Net

技術),經過一段時間修鍊,也掌握熟練了。整個過程中,其實感覺語言的基本概念都是一樣的,無非就是變數,分支,循環,對象等等這些,如果這些概念通過一門語言牢固掌握的話,其他語言只要瀏覽下即可。真正需要花點時間也就是掌握一些寫法,函數,庫等了,其實這些通過查詢文檔也都可以順利解決。技術轉換的核心

通過多年的技術工作,從一門語言到另一門語言,或者從一門技術轉換到另一門技術,真正不變的是兩樣東西:基礎知識和設計結構模式。

所謂基礎知識就是在技術領域方面一些通用知識的理解,比如對於網路編程,TCP/IP、HTTP協議這是理解的是否透徹非常重要,而且它們的變化很小,不管語言,框架怎麼發展,這些基礎不怎麼會變,你掌握到位了,學習新語言新技術會很容易。

另外就是關於設計架構模式,設計模式很抽象,需要大量實踐才能總結,他也是和語言無關的,比如你通過一種語言形成了一種好的設計架構模式,它既靈活可擴展,又穩定強壯,那就要好好總結,然後在別的技術領域或者別的語言能繼續使用,這也是在技術轉換過程中非常有價值的東西。記得當時自己在C#上封裝了的一個線程類,現在通過python改寫下,用得也非常好,這就是積累。

軟體開發是個快速發展,更新迭代非常快的領域,但我們要善於抓住其中不變的經典基礎環節,搞紮實,這樣才能快速適應變化,立於不敗之地。

以上個人愚見,希望對您有幫助!


會容易一些,但是程度有限;這個也要分語言,不能一味地說「精通一門語言,再學習其他語言就會【很】容易」。比如:

  • 你精通了Java再學習Android,就好像你以前是一個骨科醫生,現在是小兒骨科醫生,有差異,但是大方向一致,難度一顆星;

  • 你精通了Java再學習Python,就好像你以前是個創傷骨科醫生,現在是矯形骨科醫生,有差異,但是基礎內容相似,難度兩顆星;

  • 你精通了H5再學習Java,就好像你以前是個骨科醫生,現在是個獸醫骨科醫生,差異很大,但是比從0基礎學習要強很多,難度四星半。

總的來說,H5是標記語言,和C、C++、Java、Python這些編程語言的相比,差別還是比較大的。當然作為前端開發,如果題主還精通JavaScript的話,會稍微好一些,難度減半顆星;雖然Java和JavaScript的關係就好像老婆和老婆餅,但還是比H5和Java的關係近一些。

編程語言只是工具,編程思想纔是程序員的核心競爭力,例如抽象思維的能力,邏輯思維的能力,把業務數據映射到合適的數據結構上,把解決問題的過程映射為具體的演算法,對於不同的場景和問題,可以採用最優的解決方案等等。當然,編程思想也需要工具、語言來支撐,我們也不能一味的講思想、說架構,系統還是需要一行一行代碼的壘出來的。

說回到題目,精通H5語言,離著編程思想什麼的,還是有一定距離的。不過還是鼓勵題主學習一下Java編程,如果前後端都精通了,豈不是有希望成為一名全棧工程師。

我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。


這個是的,別說精通,就算熟悉一門編程語言然後再去學習其它編程語言,也是比較輕鬆的。但學習不同語言間還有差異,比如你特別熟悉C++,再去學習Java和Python就比較輕鬆,但反過來你很熟悉Python,再去學習C++,那就困難多了,因為Python本身就簡單易學,個人建議入門語言選擇C/C++最好,如果難的都熟悉或精通了,簡單的更容易學了。

但是你要是學習HTML5編程,除非你對JavaScript比較熟悉,不然光會HTML+CSS之類的再去學習Java,肯定是比較費勁的,因為這兩個關聯性不大,HTML只是超文本標記語言,跟真正的後臺編程語言風馬牛不相及,基本上算是要零基礎學。

另外,我覺得作為一個程序員,C++、Java、Python應該是必備的編程語言,都需要比較熟悉,另外再會一些腳本語言或前端技術就更好了。


如果精通一門編程語言,再去學習其他編程語言,答案顯而易見,是非常容易的。因為所有的語言都是想通的。

其實不需要精通一門語言,如果你已經熟悉或者學會了一門編程語言,再去學習其他編程語言,也會比第一次學習容易很多。

因為各大編程語言之間,一些條件語句,循環語句,數組等等很多操作都差不多,只不過是聲明的方式不一樣或者操作方法名變了,大部分都一樣!

但是呢,你說你會 HTML 語言,但是它本質上來講,跟我們平時所說的編程語言差異還太大。

HTML 是超文本標記語言,標準通用標記語言下的一個應用。它是用來畫界面和網頁佈局的。不涉及到處理各種邏輯判斷等!

HTML ,CSS 等是界面語言的標記標籤和樣式!它會了,跟我們普通大眾所說的差異太大,如果你會這些,再去學 Java , C ,Python 等編程語言還是比較困難的,在這些語言面前,你基本上屬於零基礎!


語言的語法很多都有異曲同工之處,當對一門語言做到了精通,而且學習其他語言的時候,你能夠在語法上很快的熟悉。

但是,語法只是一門語言要做到精通的非常非常小的一部分,架構的設計、中間件的應用、各種組件的使用都會是一門語言的一部分。但是,這些內容,在不同的語言環境中,會有很多不同的選擇。

因此,只能說你會比完全的小白要容易一些,但是也沒那麼容易,因為固有的思維方式還是需要有一個轉變纔能夠適應不同語言環境下的工作。

現在,

.NET

已經的市場一直在萎縮,Java和Python在壯大,也因此,很多的

.NET

工程師在向這兩個方向轉向。

.NET

和Java的語法非常的相似,因此,很多人都會覺得,從

.NET

轉到Java很簡單,其實不然,大量的配置和目錄結構的不同就會讓你花費比你預想多得多的時間。

當然,你的情況還比

.NET

轉Java更加有難度。在很多程序員的概念裏,HTML5並不是寫程序,如果你是做vue這種前後端分離的前端工程師,可能大家還覺得你是一個程序員,不然,你連程序的門其實都還沒有入呢。

因此,即使你HTML5寫得再好,你還是對於數據結構、並發、連接池、通訊加密、身份授權等等這些詞語的內容很陌生,去學Java的難度和一個零基礎的人來學的差距也不算太大了。現在,前端也是一個比較喫香的崗位,與其去學習Java,不如好好的學習一下前端的技術,這樣,可能更有發展空間一些。並不是隻有Java纔是出路。


首先菜農在這裡說明會近20種編程語言(據說目前發布的有600多種編程語言),但它們都跑不過C語言的影子,其他語言只要對比和C語言的不同即可,若再學一種語言,只要再對比所學過語言之間的不同或細微變化即可。

如各種需要都會遵守最基本的語句:

if,if else,while,do while,for,switch case…………

雖然不提倡goto語句,但在彙編語言裏jmp指令會不處不在。

實際上任何語言必須滿足彙編語言的需要,即編譯後的彙編必須正確運行。

故一切相對於彙編的高級語言,差距和書寫習慣不會太大。

下圖是很久以前,在PIC單片機上,由於當時很難找到一個C語言編譯器,就自己動手用「宏彙編」編寫了「類C」的宏語言(如下圖所示)。它也包含了全部的基本語句(if,if else,while,do while,for,switch case…………) ,並且之間可以任意嵌套無窮級。

像菜農自己也曾做過「編程語言」(還用x86的宏彙編做過「HCC」語言),學多少語言都不是問題,因為學習新語言,只是找新語言與其他語言的不同即可。

菜農認為目前所有的編程語言的switch case語句都不太完美。

因為在嵌入式領域,一個switch case可能就是一個完整的運行過程,那麼要經歷初始化過程(如InitCase),所有滿足case條件的應該有一個歸口(如ExecCase,可以不需要此歸口),而不像現在大家都完成後到一個歸口。

菜農認為:

不管你會多少種編程語言,也不管你精通哪個編程語言。

只要你不會或不知道彙編語言,就是一種缺憾!

因為你不知道高級語言編譯後(彙編語言)是如何具體運行的,基本語句是如何執行的。

當然你也不必會或知道彙編語言,也敢自稱編程高手!只要你敢保證沒人拍磚!

如果你「精通」(網路名言:說「精通」的人一定是菜鳥)了一種編程語言,其他編程語言的入門門檻肯定會降低許多。


可以很負責的告訴你:容易,但沒你想像的那麼容易。

容易到什麼程度呢:學c#的以前沒接觸過java,直接上手3天做了個爬蟲,登錄某頁面,遍歷文章下載文章及視頻,寫本地文件。

我學了10年的c#,最近在轉java,這兩門語言夠接近了吧,我用了三天時間將c#的基礎功能常用功能實現了一遍,然後照著在java11裏實現,本以為差不多也就3天就搞定了吧,沒想到最後15天才搞定,並且心裡沒底,因為還有許多功能沒細化,沒掌握。

具體都有什麼差異,我有一套方案,現在還在實踐中,有興趣的話歡迎持續關註:

https://github.com/yongfa365/Multiprogramming.language.Developer/blob/master/README.md


推薦閱讀:
相關文章