學編程都有哪些困難?

洛雅水晶


不光是編程,學習任何內容多,並且複雜的技能都有以下問題或者說困難

1.一看都會,一做都費

這個問題就是偷懶了,該練的沒去練,該背的沒有認真背. 這真的非常重要,其實有許多東西必須去死記硬背,比如編程語言上的關鍵字,一些典型例子,你不記熟相當於白學

2.堅持不懈的毅力

學習中遇到實在搞不懂的可以先跳過,說不定隨著學習的深入前面的也就理解了.但你學玩了,自己實操遇到不會的就必須去搞懂它.這就需要毅力了

我覺的就這兩點,這兩點都做好那也就沒什麼困難了,總之一句話,你能做到多學多練多思考,堅持不懈那就沒有困難了,要是做不到,那就步步覺得難.

-ⓜ 2020-03-18


m1517


會編程是一種技能。學習編程成為不少年輕人的選擇。如何學習編程?編程有哪些困難?無疑是編程新手希望得到答案的問題。

學習編程的途徑有二。一是參加正規的編程培訓,一點一滴跟著老師後面學習。二是自己在家自學。筆者建議初學者參加正規培訓班學習,這樣學習起來,障礙會少許多。

如果初學者確實決心自學編程,那麼可能有以下的幾個難點問題,必須一一自己去解決。

選擇編程語言

學編程,可選擇的語言是很多的。比如fortran、basic、c#、debase、java等等。對於門外漢而言,由於對各種編程語言均不熟悉,往往不知道該採用哪種編程語言作為自己的編程語言。

選擇編程語言,首先得需要明白自己編程方向。是做單機的電腦程序?還是做服務器版可網絡瀏覽器訪問的程序?是電腦上運行的,還是計算機運行的。

不同程序語言側重點不一樣。比如fortran側重於計算,basic側重於易理解,c#側重於面向對象,java側向於網絡空間訪問等等。

正因為編程語言選擇會面對許多專業的問題,所以是編程者面對的第一個困難。

筆者建議初學者學學basic語言,簡單易懂。然後再學c或java。

選擇編程工具

選擇了編程語言,還是不能編出程序來的。必須建立自己的編程環境,也就是可以把代碼編譯成可以在計算機上運行的軟件。

不同的編程語言,需要不同的編程環境。同一種編程語言,會有不同的編程工具。比如basic,就有quick basic,visual basic。在Windows操作系統下,一般用visual basic。

確定好編程工具,可以上網去查找免費的編程工具安裝包。在自己計算機上安裝,建好編程環境。

由於對編程的陌生,初學者往往難以順利完成編程環境的搭建。建議去書店或網上購買編程書籍,對照參考書一步一步去操作。盲目操作是不能建好編程環境的。

學會編程思維

編程本質上是教計算機如何一步一步完成人交代的工作。代碼就是指令,就是一組辦事的流程,就是對計算機內部資源的使用順序。

編程思維與日常生活的思維是有區別的,對於編程初學者,往往難以適應。比如賦值語句n=n+1,編程理解是把某個數加一,再賦值給這個數,從而實現計數功能。但從日常生活來看,完全不可理解,甚至得出“0=1”荒唐結論。

編程思維方式的轉變,是編程的重大障礙。如果這個不克服,就無法正確編程。

英語水平

因為編程語言和工具是西方的科技工具,不懂英文是不大可能掌握編程的。

編程語句所涉及到的英文語句不是很多,需要熟記語句的使用規則。懂英文的好處就是,理解了語句含義,不容易忘記。否則靠硬背,是難以熟練使用的。

[筆者有三十年的編程經驗,歡迎交流。]


湧進風雲


以java為例:

知識跨度:主線技術棧完備之前過度的關注一些需要基礎知識支撐的內容,比如面向對象都沒真正搞明白呢,內存啥玩意兒的都不知道,但是因為看到了一些像容器、反射、注入之類的概念就硬要去理解,是能理解個差不多,但東西一變也許又抓瞎了。這是比較容易發生的問題,順著一些寫的比較好的書或者看視頻課主要就是這點好,不需要你過多的關注知識線的問題,雖然細節拓展不一定做得到位,比如我早期看過黑馬的ssm系列,controller返回這塊兒就不太細,各種用法沒有講全。可能我看的視頻是比較早期的再加上前面好像有strus2的視頻,他默認你都明白了相關的知識。建議看這裡時候先看看mvc模型、http、servlet,還有springMVC框架是怎麼實現的servlet(不用太細,當成一個黑盒,看看兩邊要發生數據往來的時候都是怎麼回事兒就行),這些都看過的話理解起來就比較容易。

名詞翻譯引起的概念偏差:有時候從英文譯過來的未必最準確合適,但是早起就那麼定的,都那麼說就沿用下來了。如果說有些這樣的中文名詞你理解起來覺得有難度,建議翻閱英文文檔,多數情況問題瞬間解決。

debug:異常機制的問題,它會在發生異常的代碼塊去報錯,但原因很多時候不在這裡,可以簡單看一下異常說了什麼然後順著抓到異常的try-catch塊中調用的語句一層一層往裡找。當然很多框架或者jar包自己寫了異常,可能會把問題描述的更確切方便你找原因。

敲字:打字多了偶爾會發生的多個字母啥的,調用類或對象和相關方法還好,有提醒,一般打幾個字上下鍵選選回車就行了,自己定義數據(類、數組、基礎類型)的時候最易出問題,寫完一定檢查檢查是不是想要的,有時候用來接數據的實體類屬性只差一個字,如果前端往後端傳json傳的時候用到了註解拿實體類去接,不報錯,但是給你接null。還有創建的時候也要注意,尤其像String這種初始化時候需要手敲內容的。總之人自己完成的部分要謹慎一些,語言和ide幫你的地方就好些。

以上是暫時能簡單想到的一些問題。當然困難跟各語言特性也有關係。js一開始沒學多少,就到了前後端交互就沒看了,後來學vue框架的時候就覺得我很多地方就像java基礎不牢固的時候一樣,知道怎麼用,但原理不清楚,也許提個別的需求,要求一個技術你簡單變一下來實現,就會出現不知道怎麼做了,需要回去翻越相關基礎。好在現在都是面向瀏覽器編程,基本上問題都能在百度解決,如果不知道怎麼百度,建議研究研究或者看看搜索引擎相關的知識或者回想一下自己是怎麼找電影的(你有固定的電影網站當我沒說,順便可以發我一份),如果還是不知道怎麼解決問題,建議不要接觸編程,學習Code對邏輯能力要求比較高,你自己做一件事都沒有正確邏輯來理清事項和步驟,真的難以想象編程中遇到問題能怎麼辦。


傷心大叔不傷心


最困難的應該還是持之以恆的堅持吧

1. 每天都找不到合適和足夠的時間

如果你正在自學編程,很可能你還有其他的事情要做。

你可能有一份兼職或者一份全職工作,或者要居家照看孩子。關鍵是很難抽出空來。那麼,你如何每天撥出時間來學習編程呢?

有些人可能會說:“如果你肯下功夫,總能找到時間。”說實話,我同意。

所以問題就變成了:“你每天應該花多少時間學習編程?”如果每天只能抽出半個小時,那還能學到東西嗎?

另一方面,我也聽說過有些人在一年左右的時間每天學習9到10個小時的編程,取得了驚人的進步。所以如果你想找到點動力,可以參考一下這個。

底線在於:只有你自己知道你每天可以抽多少時間出來學習編程,並養成習慣。

2. 在“沒有取得長足進步”和“精疲力竭”之間找到平衡點

就我個人而言,我在這方面掙扎了很久。

當時有幾天,我就是沒法理解書中的一個代碼片段。我非常疲憊,以至於不得不強行讓自己冷靜下來,去陽臺深呼吸。

從那時起,我就一直提醒自己不要用力過猛,以免物極必反。

3. 熱愛自己的工作

雖然聽起來很老套,但這是事實。如果你熱愛自己正從事的工作和方向……你就不需要從外界的認可獲得動力。

這種滿足感是無法偽造的。

4. 記得在完成了別的工作後,繼續堅持學習編程

事實是,當涉及到自學時,你永遠都沒法心無旁騖地學習。

我們在生活中都扮演了各種各樣的角色——可能是丈夫,或者妻子,或者父母。你需要照顧家庭,或者工作,或者完成學業。

當我們還有其他角色,哪兒有時間去學習編程呢?

有時候你的確做不到一直堅持學習。我最長的不學編程的時間是兩個月。

但在那之後,我立即又撿起了編程的學習。我發現自己忘記了很多學過的東西。當你拿起同一本書,卻不知道如何繼續讀下去時,你可能會感到沮喪。“天啊,難道我真的要重頭來過,再學一次嗎?”

這就是你必須堅持到底的時候了。

5. 無論如何,保持動力

自學是很不一樣的。當你自學編程的時候,身邊沒有人跟你一道。沒有同學,沒有社交,成功了也沒有喝彩。大多數時候,你都是一個人。大多數時候,你都是孤獨的。

所以你需要找到某種動力來保持前進。

6. 不要“為了學習而學習”,要去面試,去實踐,去參加工作

在學習編程時,我們有時會偏離正道。我覺得有時候你只是想偷懶——一種希望通過整天坐在電腦前就不必面對真正的挑戰的偷懶。

別偷懶,別忘了,你要成為一個開發人員。

不要陷入“我正在學習,這已經足夠好了,等我準備好了,我再去找工作”的誤區。

坦率地說,找活兒幹是我們最應該做的事情。你可以聯繫潛在客戶,哪怕是為家人和朋友免費建立網站也行。



怪人制造2025


我自己是培訓機構出來的,在培訓機構學習的時候,會遇到的問題是基礎薄弱,也就是關於課本以外的知識不夠了解,因為培訓的目的是就業,所以老師會偏向於項目實戰。我一個表妹是大學本科,學的是計算機專業,她遇到的問題就是項目經驗缺少,基礎知識比較紮實。所以總結一下,學編程主要的困難就是兩點:基礎薄弱,項目經驗少。如何克服呢?最主要的就是自主學習,你得自己意識到學編程是你想要做的事情,要像熱愛玩遊戲那樣熱愛它(如果你玩遊戲),然後多去刨根問底,不要會用就可以。其次就是多做項目,沒有項目可以去網上找開源項目來練手,還有就是在工作中儘量使用自己所學新技術來改善代碼質量。


沐金


1。邏輯抽象能力,編程也有很多更為細緻的分類,如算法,數據庫,流程,等等,或者普通網站,專業應用。。。這些都需要邏輯抽象能力,當然不同方向需要的能力大小不同。

2。興趣,所有的事情都是依靠興趣驅動,但是開發更是如此,這是一個相對單調的行業。

3。忍耐力,接上面說,當你感覺學不下去的時候,就是考研忍耐的時候。我04年面臨從命令行轉成網站,不會,周邊沒有會開發的,天天干憋,天天想,1年半,突然想通了,後面就一馬平川。所以想搞IT必須有強大的忍耐力。

4。求知慾,開發不單單是個堆積木的過程,裡面還要涉及更多的知識,你不可能一輩子只幹開發,至少在目前中國的環境是不可能的。你需要不斷的提升,不斷的去掌握新的技術,不單單是開發相關的技術。如我目前相關的有數據庫,虛擬化,docker,devops,。。。

5。職業規劃,還是接上面說,開發走技術應該就是高級開發,架構師。。。,走項目就是產品經理,高級產品經理。。。

6。認證資質,國家有相關資質認證,初級中級都有明確的專業方向,高級就幾個如果走技術,到高級都是相互融合的。

以上就是我從業16年的建議,希望能給你有個良好的指導。


無趣做IT


個人認為學編程的難度在於個人能否堅持下去

因為任何編程語言你學起來基礎的語法都差不多,但是裡面的思想邏輯還是需要好好的學的。

這也就是有很多人開始學編程感覺很有興趣,但是越來越感覺枯燥乏味堅持不下去的原因。

如今掌握一門編程語言也是很重要的,如果真的想學編程就要有一個長期學習的心理準備,持之以恆的一顆心才是學好編程的關鍵


猿猿嘚不嘚


首先非常感謝在這裡能為你解答這個問題,讓我帶領你們一起走進這個問題,現在讓我們一起探討一下。

廣度與深度難以兼顧。

計算機專業基礎課,如OS,數據庫,網絡,算法等,抽象且難以理解,大學時不學,以後就很難拾起來。

既強調動手,又強調抽象,二者缺一不可。但善於思考的人,往往喜歡謀定而後動;善於行動的人,往往沒功夫回顧思考。

對於要先理解才動手的人,是種折磨。往往做了一兩年,才突然理解某個概念。

對於初學者,難以區分學的知識,還是配置。

雜訊太多,不知道學什麼。

總的來說,編程裡簡單的地方,往往價值不高,困難的地方,這次避開了,下次還是要理解,逃也逃不掉。

在以上的分享關於這個問題的解答都是個人的意見與建議,我希望我分享的這個問題的解答能夠幫助到大家。

在這裡同時也希望大家能夠喜歡我的分享,大家如果有更好的關於這個問題的解答,還望分享評論出來共同討論這話題。

我最後在這裡,祝大家每天開開心心工作快快樂樂生活,健康生活每一天,家和萬事興,年年發大財,生意興隆,謝謝!



熱血的燃屎官


1。邏輯抽象能力,編程也有很多更為細緻的分類,如算法,數據庫,流程,等等,或者普通網站,專業應用。。。這些都需要邏輯抽象能力,當然不同方向需要的能力大小不同。

2。興趣,所有的事情都是依靠興趣驅動,但是開發更是如此,這是一個相對單調的行業。

3。忍耐力,接上面說,當你感覺學不下去的時候,就是考研忍耐的時候。我04年面臨從命令行轉成網站,不會,周邊沒有會開發的,天天干憋,天天想,1年半,突然想通了,後面就一馬平川。所以想搞IT必須有強大的忍耐力。

4。求知慾,開發不單單是個堆積木的過程,裡面還要涉及更多的知識,你不可能一輩子只幹開發,至少在目前中國的環境是不可能的。你需要不斷的提升,不斷的去掌握新的技術,不單單是開發相關的技術。如我目前相關的有數據庫,虛擬化,docker,devops,。。。

5。職業規劃,還是接上面說,開發走技術應該就是高級開發,架構師。。。,走項目就是產品經理,高級產品經理。。。

6。認證資質,國家有相關資質認證,初級中級都有明確的專業方向,高級就幾個如果走技術,到高級都是相互融合的。


ai鄉里人


基礎知識要牢固、如、數據結構與算法 、設計模式、網絡相關等。



分享到:


相關文章: