首頁>Club>
題主大二,自學java兩個學期了,但是依舊有很多不懂的問題,並且是跨專業學習,所以對未來有很多迷茫,請大神指點!
10
回覆列表
  • 1 # 佟妮妮

    c c++ java等語言,都是程式設計師所需要學的。想要學好java首先推薦精讀effective java和thinking in java,有個Java學習路線給你參考下:

    C語言是基礎語言,C++是衍生語言,Java是當前較為流行的語言。

    之前有傳言說軟體市場供大於求,可是在我看來,程式設計師及軟體市場還遠遠沒有飽和。隨著網路發展,軟體開發等人員供不應求,只要你學的好,有過跟專案的經驗,和應聘公司所需要的人才型別相符合,多半都可以找到合適的工作。

    能介紹的就這麼多,你可以作為參考,可能並不具體。

  • 2 # 逆戰西訣

    程式設計講的是如何解決問題。但在你開始寫程式碼之前,你需要清楚如何解決問題。一個好的程式設計師應該擁有這樣的技能,他能將問題分解成子問題,直到每個子問題都可以很輕鬆地進行解決。不過要找到一個解決問題的方式可不是件簡單的事。好的程式設計師能夠很好的對問題進行建模,這樣寫出來的程式很容易能看懂,很容易實現及測試。

    我所見識過的一些複雜的程式,它們之所以這麼複雜,部分原因是由於它的實現並不適合對應的問題。這導致程式碼很難理解。我很同意Bernie Cosell關於問題建模方面的看法:

    “很少有程式天生就是複雜的。如果你看到一段非常晦澀的程式碼——你無法理解它到底要做什麼——這通常就意味著它的實現非常糟糕。這個時候不要擼起衣袖就開始修改程式碼,而是應該退一步,好好地重新思考一下 。當你把整個問題都想透了,你會發現問題其實很簡單。“

    好的開發人員應當能夠考慮到程式的不同場景。這不僅是指程式的邏輯,同樣還有的是可能會發生的內外部的事件。要想考慮到業務邏輯的不同路徑,你可能會提出這樣的問題:如果這個引數為空的話會怎樣?如果這些條件都不為真的話呢 ?這個方法是執行緒安全的嗎?為了弄清楚程式到底需要解決哪類的問題,你可能會問自己:如果佇列為空的話怎麼辦?或者這個請求沒有響應?如果這個伺服器重啟的時候,別的伺服器也在重啟該怎麼辦?

    好的程式設計師應該會問自己:什麼情況下它會出現問題?也就是說,他們能夠像測試人員一樣看待問題。反過來,沒有經驗的程式設計師通常只考慮程式主邏輯——也就是當所有事情都如預期時的正常的控制流程。不過一旦發生了異常情況,程式必須得能夠應對它。

    程式編寫涉及到許多命名的問題:類,方法以及變數。如果做得好的話,程式應當是自文件型的,也就是說透過讀原始碼就能很清晰地理解程式的意圖。自文件型程式碼的一個結果就是方法通常會更短,而不是使用很長的方法,這是因為小的方法,你才可以有更多的地方來賦予一些有意義的名字。

    好的名字可比想像中的要困難得多。我喜歡Phil Karlton說的這段話:”計算機科學裡只有兩件難事:快取失效以及命名“。命名之所以這麼難是由於你得清楚每個名字都代表著什麼。有的時候事情並不會那麼明朗 ,只有開發到達一定程度的時候才會清楚。也就是說,重新命名和命名一樣非常重要。

    或許寫程式裡面最大的挑戰就是管理的複雜性了。一致性是對抗複雜性的一種方式。它讓我們看到了問題的固有模式,讓我們可以推論出東西該如何命名,使用以及處理,這在一定程度上減少了複雜性。達到一致性之後,我們不用再費精力去記住異常情況以及隨機的變動。我們可以聚焦於問題的本質複雜度,而不是偶然複雜度。

    一致性是非常重要的。它包括變數名及分組,方法命名,模組的劃分,目錄結構,GUI,錯誤處理,日誌,文件,等等。比如說,如果有一些變數是關聯的並且出現在一起,那麼就應當始終按照同樣的順序來使用它們。這樣的話,如果漏掉了一個或者將它們搞混了就能夠很容易發現。對於某個操作而言,如果它在某個地方是叫做delete,那麼就不要在另一個地方把它稱為remove——要堅持使用同樣的名字。 Steve McConnell在程式碼大全中關於準確地使用反義詞有一些不錯的建議。比如說,begin和end是反義詞,同樣的還有start和stop。不要混合不同分組的詞語(比如begin和stop)

    修改程式可能會導致不一致。草率的程式設計師是不會注意到他們新增的程式碼是不是與現有的程式碼一致的。好的程式設計師會確保每一個細節都是正確的。他們知道一致性對於減少複雜性有多麼重要。

    作為一名軟體開發人員,你需要不停地學習。在增加一個新特性之前,你必須知道它是要做什麼。在往一個現有的程式中增加程式碼之前,你通常都要學習現有的程式碼是做什麼的,這樣才能正確地實現新功能。你還得了解周邊的系統,這樣才能正確地和它們進行互動。快速的學習能力可以讓你成為一名高效的開發人員。

    更有甚者,由於軟體工程領域的發展速度實在是太快了,會不斷地湧現出許多新的語言,工具,技術以及框架。這是把雙刃劍。Fred Brooks把學習看作是一種娛樂。學習新東西,樂在其中矣。這也意味著程式設計師的生活永遠不會枯燥。

    其實上面這些都是比較通用的技能——它們並不特定於某個語言,框架或者技術。如果你具備了這些技能,你可以快速地學習一門新語言或者一個新工具,並用它們編寫出優秀的軟體。更重要的是,由於它們具備通用性的本質,即使多年過後也仍不會過時。

  • 3 # 幻風的成長之路

    就一句話,鍵盤幹碎,其實就是堅持不懈的努力,其他的回答都沒有任何意義,你努力了還沒有大神,那就沒有解藥了。

  • 4 # 碼農人生

    我也是一個跨專業的程式設計師,我很有發言權,我現在工作也有5年了,有一個剛開始的小白,慢慢變了程式設計老手,感覺還不敢自稱是大神。我覺得你目前首先要選好一個方向,現在的程式語言也有很多種,方向也很多,前端,後端,資料庫開發,運維,大資料,雲計算等。

    你首先要選擇一個你以後想從事的方向,從一個大的方向開始,這樣不至於以後自己迷失方向。

    再者從學習方面,你可以報個培訓班,培訓班比較適合我們這種跨專業的學程式設計,培訓班雖然不能使你鞥從一個小白到大神的轉變,但它能夠使你迅速的屬性計算機程式設計基礎知識,很有幫助。

    可以節省很多時間,如果你自學能力很強的話,也完全可以透過自學,把計算機程式設計基礎知識給學好,不要小看這些基礎知識,這些是你通往大神之路必經之路。

    有了基礎知識之後,就要開始多種專案了,做專案剛開始可以從一些比較小的專案入手,雖然這些小的專案不會給你帶來什麼大的成就感。但是透過做專案,才能是的程式設計能力得到迅速提高。讓你從此愛上程式設計。在這個階段可以試著找一下公司去實習。進入實際的專案中去。

    等你真正接觸了專案之後,你的學習才更有針對性,和方向性,這是也是你最需要努力提高你各方面知識的和能力的時候,這個時候,你才會真正認識到你之前學的知識的重要性和你需要學的那些知識的必要性。在這個階段,是你從小白到大神蛻變之路最重要階段。

    等你在專案和工作中鍛鍊了3,5年,你就會發現你慢慢變得很牛了,程式設計中遇到的各種問題,你都能輕易應對,及時有些難點也能找到解決的方法。這是你就離大神之路不遠了。不過很不過大神級別,想要真正成為大神,很的需要你內外功兼修,內功包括你的英語水平,多看一些開源的原始碼,分析一些開源框架等,還要多看一些各方面的書,來擴充你的知識面。大神之路能否修煉成功,就看你的修為了。

  • 5 # AppFuns

    關於這個問題,筆者只想告訴題主一句:堅持學。題主問這個問題,我想一定是自己有點心急了,成為大神從來都是沒有捷徑可走,只有堅持學下去,才能裡大神更進一步。當然堅持學這個道理我想題主一定是懂得,所以題目的答案題主應該是知道的,若題主是不懂學習的技巧和路線,可以參考樓上的幾位。如果題主能問一個關於Java程式設計哪些不懂得問題,並得到解決是否會離大神更加進一步呢?

  • 6 # vv羽

    首先先把基礎打好,網上很多教程網站,runoob,極客學院什麼的,可以選一個把裡面總結的知識點過一遍,不會的就學。

    java,算是一種高階語言,比起C什麼的話,算是簡單些。

    任何語言要想學好,都需要練習,練習,再練習。

    多思考,多做題,不會的,搜一下然後再思考,完了再自己寫答案。

    另外多看書,《thinking in java》、《effective java》這些對於剛入門的來說,看看還是有很大收益的。

    另外光會程式設計還不行,你還得會搭架子,知道MVC,多看些開源框架,比如spring、struts、mybatis等等。

    順便了解下前端的書,知道HTML,javascript什麼的,這樣別人讓你做頁面的時候你就能信手拈來。

    最後祝好。

  • 7 # 東渡科技

    學習Java,有兩種方式。

    第一種:自學,什麼是自學,簡單說就花時間練技術,這種需要有大量的時間,還要自己的自律性比較好,優點是自己可以慢慢體驗,一點一點的學習,打下堅實基礎,培養自己的獨立解決問題的能力。缺點就是沒有人帶,肯容易像樓主一樣陷入迷茫,找不針對的方向。

    第二種,參加培訓,就是進入培訓機構進行培訓,像我們東渡就是專業的Java培訓機構,參加培訓就是花錢買技術,也有人說是花錢買時間,為什麼這麼說呢?培訓機構是針對企業需要去培訓學員的,所以針對性很強,可以快速的在學員腦海中建立系統的學習方法,讓學員有明確的發展方向。簡單快速,教學過程中很多細節還是需要自己去摸索,但隨時可以問老師,不像是自學那樣,只能網上到處去找資料。

    想要如何小白變大神?看到這句話我就在想,你都不知道大神經歷了什麼就想成為大神,首先,大神都是從小白過來的,所以學習成長很重要。到底需要怎樣的學習成長,你會發現幾乎所有的大神在成為大神之前都是有人帶的,完全靠自學成為大神的人,在技術行業很少很少,說鳳毛麟角絕不為過。縱觀大神的成長日記,幾乎每位大神都有這樣的特點:1、特別喜歡軟體,學習很認真;2、大量的練習,特別自律,堅持到底;3、總是想方設法接近很牛逼的人物,並最終得到牛人的指點;4、永不滿足現狀,有學習機會就去了。

    從你的描述來看,想要成為大神,你還差的很遠,因為一個真正的大神不可能只會一門程式語言,即便Java是一門非常有潛力的語言,但要到一定的深度,就像很多武俠裡面的絕世神功,單練一門,想要練到最高層非常困難。當然前提是要學到一定的深度才有必要去找突破的機會,從目前你的狀況來看,還遠沒有到藉助其他語言突破現狀的程度,針對你的情況,有兩種方式可以供你參考:1、報一個培訓班,系統的去學習,找到自己的發展方向;2、加入相關的興趣團體,跟著裡面的大神學習。

  • 8 # 攀i攀

    我也是跨專業 我是學漢語的 一開始搞安卓 後來又搞java 小公司工作三年 最近換了大公司 感覺完全是靠自學 自己鑽研的更多一些 不要遇到問題就逃避 問別人 自己要多堅持自我解決 才能得到最大的提升 當然得感興趣 能坐的住 我有時候比較忙的時候 一天5個小時都不待動的

  • 9 # 聚恆嚴選

    發現了一篇文章,很適合你這個問答,,你可以參考一下!

    在程式設計的世界裡,程式設計師年薪過萬是一件很輕鬆的事情。

    不少的IT網際網路從業者也希望轉行做程式設計師,迎娶白富美,走上人生的巔峰。

    當然,程式設計師並不是你想當就能當的。

    下面w3cschool給小夥伴們分享適合做一名優秀程式設計師的必備的5個條件:

    0、英語閱讀能力

    作為一名合格的程式設計師,不必暢通無阻可以閱讀英文各種名著。

    但是,最起碼可以看Stackoverflow以及一些原始碼文件,不過也可以去w3cschool的網站看翻譯的文件。

    1、抽象思維能力

    在程式語言中,類、棧、堆、層等這些概念是非常抽象的,不是具體化的概念。

    你必須學會和這些抽象概念共處,如果一個指標你搗鼓了半天都沒弄懂,那必須不適合當程式設計師。

    2、邏輯能力

    Code即邏輯,Code有問題即邏輯有問題,程式設計有時候就是這麼一回事。

    因為寫程式碼另外一個方面就是要讓人看懂,邏輯有問題的,程式碼就會混亂不堪,漏洞百出。

    3、人際交往能力

    或許在很多人的眼裡,程式設計師刻板、木訥,並不擅長與人溝通。

    但實際上,通常這類人是碼農,而不是程式設計師,人們只是把他們混淆罷了。

    據我個人經歷,身邊不少的程式設計師非常健談,而且也極具幽默感,很好溝通。

    4、喜歡新鮮事物

    如果你一直喜歡待在一個永不變化的環境中,那你很可能成為不了一名程式設計師。

    因為在程式碼的世界裡,程式設計技術都是日新月異的。這就需要程式設計師去發現新技術,研究新問題。

  • 10 # Nonar

    99年上大學的時候,計算機系。對電腦硬體很懂,同學裝機都靠我。不會程式設計什麼的,但是會一點PHOTOSHOP。然後,我就大二就去打工了。

    去到一個專門做網頁的公司,我負責做圖片,旁邊那個小夥負責寫HTML程式碼。我工資500,他2000。我很好奇,寫程式碼居然能賺這麼多。然後就問他,寫什麼程式錢最多。他說C語言。

    我在網上一查,我大學的課程不就是C語言嗎?我居然不知道,因為我都沒上學。於是我辭職了,把自己關在家裡3個月,一次都沒出門,把大學四年的計算機書全部學完了。

    然後去找工作,還是找不到。因為我們當時大學學的是DOS下面的程式設計,沒有講WINDOWS程式設計。於是去買了一本書叫"深入淺出MFC"。網上的大牛說,這本書不能看,深進去就出不來了。嚇死我了。看得確實非常吃力,花了1個月大概弄明白它在講啥了。發現不需要我學透,只要知道大概的意思,就可以當字典一樣的工具書來查了。

    然後花了一週時間,寫了一個WINDOWS程式,找到了感覺。再出去找工作,工資變成了5000。這就是短短的四個月改變了我的人生。希望你能有這個魄力。

    後面就是遇到一個問題就學習就解決一個問題。基本上5年時間把所有程式的知識和技巧都學會了。我相信,一旦人有目標,有魄力,事竟成!祝你成功!

  • 中秋節和大豐收的關聯?
  • 為什麼全世界正規科研機構都證明轉基因產品無害,還有一堆人造謠?