Ⅰ 程序員遇到很難的技術問題是怎樣的感覺
昨天剛領一個線上P0級重大事故,持續時間1小時,影響范圍全站 !准確的時間點是下午17點開始,具體問題定位且聽我下文細細道來。
先說感覺,那感覺真是太刺激了,本來下午五點,昏昏沉沉的,瞬間一個激靈就清醒了(想像一下高中課堂,你在打瞌睡,突然老師走到你面前給你一下子的感覺),原本准備再過一小時吃晚飯了,吃完晚飯再摸魚到21點就可以下班了呀,別問我為啥到21點,問你就不是程序員!
帶著無比緊張且顫抖的心情開始定位問題,先來個錯誤日誌嘗嘗鮮:
1、下午五點開始有少量的慢sql報警,沒有人當回事,因為這種事情總發生,雖然大家都知道在實際開發中如何避免慢sql,但是整個團隊要想完全避免慢sql卻很難;
2、五點十分左右,開始零星有用戶反饋指定功能不可用,SLB開始報警,技術開始介入排查;
3、十五分左右,客服部門電話開始爆炸,用戶密集反饋指定功能不可用,技術部開始重視;
4、二十分左右,所有服務大面積出現介面無法響應,整體服務不可用;
5、我們一開始定位覺得是MySQL的問題,因為前面有mycat的慢SQL報警,後來定位並不是MySQL,因為MySQL的內存、連接數、流量這些指標都很平穩;
6、最終在五點三十分的時候我們定位到是ES出問題了,因為所有的java服務不可用最終都指向上面的錯誤日誌,bbo提供的服務線程池滿了,再有請求進來直接拒絕了,查看這個服務的代碼,最終查詢的是ES,此時的ES進程已經處於假死狀態。
那接下來大家說怎麼辦?如何快速的恢復線上服務?
重啟!
是的,只有重啟大法此時是最快的解決辦法,你不可能說保留ES事故現場,讓我用arthas之類的工具來現場分析jvm內存情況。
然而重啟之後服務依舊是不可用,介面還是無法響應, 大家知道這個時候是什麼原因嗎?為什麼重啟了ES服務還是不行?
後續繼續重啟報錯bbo日誌的相應服務,當這些服務全部重啟完畢後,我們的服務終於恢復訪問了,這個過程持續了十幾分鍾,確切的說,直到17點五十多分,我們的所有服務才恢復了訪問。
接下來就是事故總結、相關責任人、產生問題的原因、接下來的優化方案,全公司郵件通報!
你說這個難不難?本身並不難,難的是事情緊急且重要,這個時候你慌了啊,亂手亂腳的,大家你一言我一語的,如何冷靜提取有效信息然後盡可能快的解決生產的重大故障才是最難的!
最後,當一切都恢復平靜的時候,你會發現:「卧槽,好累啊!」。
虛脫的感覺!
最後祝大家程序員節日快樂,今年可是程序員的本命年哦
2020 = 1024 + 996 = 404 + 404 + 404 + 404
這種感覺能難受,很壓抑。
技術難題,對於程序員來說,是經常有的事,關鍵是如何面對吧。
說下我的事情,雖然也會寫點代碼,但並不是以此為正業,所以對於真正的程序員來說,可能說法會有點偏頗。
遇到難題時,一般都在網上搜索解決方法,一般來說,都有很優秀的程序員分享他的勞動成果,所以一般都能解決問題。但也真正碰到難的問題,一個就是循環的問題,無限極菜單問題,當時都是找了很久,看了很多遍才明白過來,當時自己是幾天都不太開心,也不太想說話,總是在測試著程序。挺煩也挺不開心的。只是最後做出來了,心情就好多了。
這是我的一些經歷,當然,如果全職程序員,可能壓力就更大了。
如何形容這種感覺呢?焦躁,緊張,失落,無助,亞歷山大...
再多詞可能都描述不清楚。本人在工作中經常遇到難題,有些問題一兩個月都搞不定。遇到這種問題,估計只有下面這張圖的表情能描述此時此刻的心態了。
程序員遇到的難題其實分為兩種,一種是沒有辦法定位清除的問題,另外一種是定位清除了,但是沒辦法,或者很難解決的問題。
難定位的問題所謂難定位的問題,其實就是你根本不知道這個問題是什麼。比如系統突然掛掉了,你從現有的信息根本不能確定問題在哪。這個時候你剩下的可能只有滿腦子的問號了。
如果系統只掛了一次,後面不再出問題,那就很難找出問題的根源了。不過這樣也有好處,那就是問題的影響的程度相對較輕,畢竟不容易出現。所以在軟體開發中通常不是什麼問題都解決的,因為不是所有問題都能搞清楚是什麼問題,談何解決呢!
難解決的問題難解決的問題是問題搞清楚了,但是基於現有架構很難,或者沒法搞定。遇到這種情況,通常先是很高興,興奮,然後就只剩下無奈了。
當然,從技術層面來說並不是完全解決不掉。只是如果要解決需要涉及架構調整或者其它方面的改動,修改調整的內容太多。這種情況下就要考慮利弊得失了。
如果改動太大,可能會引入很多新的問題,可能得不償失。因此,遇到此類問題可能會採取一些規避方案。
當然,在開發和運營當中遇到各種問題是很正常的,關鍵是遇到不同的問題採用不同的策略。首先保證的是業務的正常運行,然後是考慮是否需要徹底解決。這樣慢慢調整,心理壓力會小一些。
作為一個工作多年的老碼農,在工作也遇到過一些艱難的技術問題,就以切身體會談談對這個問題的看法。
首先需要明確一下,問題是否困難除了取決於問題本身之外,還在於解決問題的人的水平,也許對你很難的問題,在別人看來不過是小菜一碟。明白了這一點,那麼這些技術問題也就成了考察程序員水平的試金石,有些人可能會因此氣餒,甚至放棄;而有些人則通過解決問題學到了很多新的技術,也讓自己進一步成長。
記得多年前看工作中要用到一款開源庫,那時候剛學完C++不久,自以為對面向對象了解甚深,然而學習這個庫時卻是一頭霧水,最後在經過泡論壇,然後又認真的學習了面向對象設計模式,後來不但能使用那個庫,更重要的是對面向對象編程有了更深的認識!
後來還有很多類似的事情,剛開始時感覺無比困難,但是通過自己的努力,或求助他人、或查閱資料,當最終問題解決時,你會發現自己又牛逼了一些,然後再遇到一些新的問題,如此循環……
其實編程也是一個學習的過程,就如同爬山一樣,每一階段都會有一些山頭,只有當你爬上山頭才能欣賞美麗的風景,但是當你爬上一座山頭的時候,就會發現更高山峰!只有當你爬上最高峰,才能「一覽眾山小」,可是到那時,你可能會嚮往地球之外的天地!
很難解決一般就是遇到某些瓶頸了,不同瓶頸的感覺是不一樣的,但無非可以歸結為下面幾類。
成本原因
不讓馬兒吃草,還想讓馬跑。這個是有些不太理解互聯網的一些領導的錯誤觀念,他們會給你安排一個老舊台式機,想要讓你承載幾萬、幾十萬並發的秒殺系統,你當然很難解決。
外界的評論可能是,「這幫程序員是吃干飯的么?這系統也太垃圾了!」
老闆的評論是,「我這台式機也不少錢呢。」
程序員的評論是,「這摳門老闆不會是個傻子吧。哎,再優化優化吧。」
當然,有些情況也是能夠理解的,公司明白需要更好的設備,但是由於成本控制,不得不在某些方面節省。但換句話說,設備成本是占不了一個大頭的,可能有其他方面的成本更加需要收緊。
如果是因為成本原因,我們的心情可能是無奈,又有些不能施展拳腳的束縛感。
歷史 原因
舉個例子,系統用了5年了,迭代了N個版本,在面對新的需求的時候,就會出現需求限制於系統的情況,常常會有程序員說,這個實現不了,那個不符合現在系統規則。其中很大一部分是這些年的積累,欠下的技術債造成的。俗話說,大船難調頭。
這種情況更多的出現在剛創業之後的幾年,由於一開始的快速迭代,追求先把業務流程跑通,先生存再規范,會讓一開始的軟體開發流程並不那麼規范,如果在1-2年內沒有進行重構,那麼積攢的3-5年的技術債就會慢慢把你壓得喘不過氣來。
解決這種情況,一是需要時機,給出足夠的空間和時間讓技術團隊重構,二是需要魄力,你得有成功的把握,不能幹著干著說不行了,咱們還是回到原來吧。
如果是因為 歷史 原因,我們的心情可能是期待和渴望,又有些對現狀的無奈。
能力原因
雖然說專家很厲害,但說白了,大部分企業需要的研發人員,還到不了需要專家的級別。所以,一般而言,沒有什麼技術是攻克不了的。如果真的遇上了,那就說明你的公司已經到達了一個新的層次,從而需要那個層次的人員來解決,可以通過外聘或者顧問的方式,引進新的技術。
如果是因為能力原因,我們的心情雖然有些力不從心,但又為公司在新的台階而高興。
不管怎樣,程序員是一群追求美好的人,不管是外部限制還是內部限制,不能解決的難題對於技術人員來說總是很憋屈的。
不能著急,慢慢分析,找到問題點,沒有解決不了的問題
程序員的技術問題,排除架構師技術選型錯誤以外,都是程序員的功夫不到家所致。
1,面向網路的程序員會第一時間問度娘,各大社區求助大神。
2,面向源碼的程序員會第一時間查看源碼實現,查找api文檔,思考解決方案。
3,不管技術如何發展,架構如何延伸,不變的是基本功,再先進的組件都是由基礎語法書寫出來的 。
練武不練功,到老一場空,共勉!
首先說下這個很難的技術定義,個人認為在你知道之外的知識都是很難的,一旦你深入了解其使用方式,原理,甚至閱讀了他的源碼,你會覺得有的時候會恍然大悟。程序員是一個不斷要學習的崗位,就要面臨很多從未知到已知技術的時候,每當遇到這樣的情況時候,總有種不解決了這個問題,睡不著覺的感覺,心裡不踏實,總是想盡各種辦法去解決這個問題。甚至可以一直追查這個問題。也許這就是一種執拗吧
我老公最近就遇到一個大石頭需要敲碎,我作為一個旁觀者,都挺心疼他。
他還在讀博,最近遇到的問題是他一個項目上的問題,也跟他的畢業設計相關。他剛讀博的時候確定了一個方向,去年開題的時候他覺得這個方向沒有什麼前景,真的是考慮了好久要不要換,如果不換,就是安穩的畢業,換的話接下來的一年多時間他會很艱難,很多新的問題需要一一克服,最後他決定換了,他說他讀博就是為了提高自己,還是想挑戰一下。
年前,系統板設計好了,然後最近做好回來了,開始調試,說這個板子跟個石頭一樣,不工作。本來就是禮拜一到禮拜六待在學校不回來,周日是休息的。現在放假回來都是在啃變壓器的東西,早上起的很早,晚上又很晚。真的挺心疼的,他還安慰我說,他又要進步了。挺擔心他的身體的,我特別希望時間能快點過去,能順利畢業。他卻不希望,總覺得時間過的太快,沒有時間搞研究。
今年的生日願望,希望他科研順利,身體 健康 。
以我的從業經歷,說說遇到很難的技術問題是什麼感覺吧: 興奮、充滿挑戰性 。尤其是在開發中遇到了技術難題,很多情況下真有種可遇不可求的感覺。
我認為能遇到技術難題,至少證明這個工作是有價值的。 這種價值體現了兩個方面,一是你的工作在整個產品開發中占據重要地位,甚至是核心地位。二是你的認知和經驗,仍然有成長的空間。如果你的工作一直沒有遇到難題,輕而易舉地就解決了一切,那麼很可能是你沒有機會深入重要的核心部分,或者你的工作性質可替代性很高,簡單重復性很高。
分解法。 把技術難題拆分,盡量的單元化、模塊化,這樣有利於逐步攻破,逐步解決。主要是降低技術難度,尋找真正的難點所在。如果問題無法拆分,就是那麼一個點,那麼需要逆向思維,可以先把問題擴大,看看涉及面有哪些,然後再縮小范圍,鎖定關鍵之處。
刨根法。 把技術難題抽象化,理論化,從根本的源頭去解決。很多技術問題,從基礎理論的角度去看,其實真的不難,只要你能定位到相關的技術點,困難點,知識點,就很容易進行快速解決。解決的終極辦法就是從理論上徹底解決,做到知行統一。
討論法。 三人行,必有我師。很多情況下,所謂的技術難題,在別人的眼中,也許並不是難題。很多情況下,小組討論,交換意見,方案互補,就可以解決難題。有些情況下,還需要和供應商一起討論,主要是補充信息的錯漏。經常出現的晶元問題,很多情況下供應商都更加有經驗。因為供應商有更多的使用客戶,有很多解決問題的經驗。最主要的是,晶元是他們設計的,他們更加清楚緣由。
沒有絕對的技術難題,有的只是尚未解決的技術難題。
Ⅱ 怎樣做一名高效率程序員
1、理解編程語言的原理
三流的人才懂應用,二流的人才懂開發,一流的人才懂原理。各種語言之間存在著相似的地方,掌握語言的原理是必不可少的。最重要的,讓語言去適應項目,反之亦然。
2、向優秀程序員學習
你有一個蘋果,我也有一個蘋果,我們交換蘋果,你我還是有一個蘋果;你有一種思想,我也有一種思想,我們交換思想,你我就有了兩種思想。
與優秀的程序員為伍,你將吸收的最實用的經驗,這遠比你一個人自學、死磕編程來的快一些。有一句話說到好,與臭棋佬下棋,棋會越下越臭。不可否認這樣一個事實:和什麼樣的人在一起,就有什麼樣的格局,就會有什麼樣的人生。
3、了解數據結構和演算法
如果你要成為一個高效的開發者,就必須學會快速排序、學會辨認O(n2)程序、學會編寫遞歸函數。
學會多種語言,你便會更清楚不同的框架是相同問題的是如何解決的。盡可能去了解底層命令(plumbing),以便能夠作出明智的決定(Web框架是怎麼存儲session狀態的?Cookie到底是什麼?)。
4、精通一個編輯器
高效開發者通常是用IDE編輯器嗎?其實不是的,他們更常用的文本編輯器,因為這樣更會學到東西。
如果使用編輯器選擇通用的Emacs或Vim,自然是最好的。其次,挑選你的首選平台最支持的。使用宏,不斷地寫代碼;使用Visual Studio或SublimeText的自動補齊功能。
5、整潔的代碼勝過巧妙的代碼
如果想讓別人可以輕松讀懂你編寫的代碼,請盡量使用最少的代碼來完成任務。在編寫代碼過程中,遵循DRY(Don』t repeat yourself)的原則,使用明確定義的對象和庫,將任務分解成小而簡單的代碼段。
6、掌握代碼調試技巧
現如今市場和需求變化相當快,項目的周期有時就會縮短。一個月的工作計劃,會縮短到2個星期。項目的壓力難免會導致程序員的代碼質量會有所下降!
因此,調試技巧在這樣的環境下就顯得尤為重要。高級程序員會在函數的開始和結束輸出Log,把所有的參數和返回值列印到日誌系統,便於追蹤。在解決問題的過程中,使用開發工具一行一行進行調試,實時觀看參數的變化。
7、重新回顧代碼
重新去回顧和審視自己寫過的代碼,通常會有兩種體驗,一種是我怎麼寫了這么爛的代碼;另外一種則是對自己寫過的代碼充滿了成就感。回顧代碼有時可以觸發我們新的想法,甚至還能對編碼有一個更深層次的思考。
Ⅲ 程序員自學要多長時間(自學程序員有多難)
程序員要學多久問題一:自學程序員要多久你要是一點基礎都沒有的話,你學PHP什麼的看視頻只要努力幾個月就可矗學會了,如果自學JAVA,C++的話就不用想了,我大學上課聽都聽不懂,雖然我也不想學,但有老師比沒老師至少要好多了。如果有一點基礎的話,PHP這種弱語言類型也很容易學的,大概就一兩個月就可以了。但沒有努力再想學也是白搭,而且能看懂學會也不代表會用,程序最重要是會用,這個實踐是最好的老師!
問題二:作為一個程序員需要學多少技能介紹下我的想法:
大學里學的是計算機專業,所以順道學了不少計算機系的基礎課程,總體來講學得很不好,直到大四畢業,我才勉強下定決心要以寫代碼為生(現在想想,可能是當時實在想不出其他出路)。大學4年,很遺憾的事情就是我沒有弄清楚該去真正學些什麼東西。
畢業後第一份工作,在一家小公司寫servlet/jsp,說實話,我寫的很爛,當時帶我的人對我的工作很不滿意,直到有一次,項目經理跟我談說,你的工作表現你也看到了,差點就被開掉了,不過我覺得還是要在給你機會。。。當時,我真的是自信心崩潰到極致,覺得自己這段時間其實很努力,但為什麼還不入門路。。這次經歷給了我非常大的影響,之後的不久,我終於明白了怎麼去寫那些servlet/jsp,於是我努力的寫那些代碼,不久,我就成了公司新員工裡面,做東西最快的人。當時還發了個公司的什麼最快進步獎給我。我想第一份工作給我最大的感受是,想要做為一個程序員,你得先明白,程序是個什麼東西。
一年多以後,servlet/Jsp實在不想寫了,於是換到另外一家公司,做聊天軟體的J2ME客戶端。其實我當時不懂J2ME,在剛入職的一個月里,啃完CLDC和一些會用到的JSR的英文文檔,然後每天去看項目的代碼,有任何問題就去問周邊的同事。不久,我也慢慢能寫一些J2ME的代碼了。接著,我加入了新版客戶端的項目組,開始做一些UI組建。最開始,我寫一個Text組件,就是把文字顯示到屏幕上,還要根據屏幕可顯示區域的寬度、高度對文字做調整。沒幾天,我就信心滿滿的寫完了這些代碼,原來寫客戶端代碼也不難啊。不過不久,當同事要用我的組件時,問題百出,以至於同事跟經理抱怨說,這么基礎的組件應該給有經驗的人去寫啊。。這次,雖然我的工作做的很爛,可自信心倒沒受多少打擊,因為已經工作一年多了嘛,臉皮厚了不少。但是我心裡知道,我的工作肯定哪裡出了問題,否則我的組件應該能經受住使用者的考驗的啊。這份工作中,我學到了不少東西,首先呢,臉皮要厚一點,不會就追著去問,其次,沒有想清楚的話,寫出來的東西經不住考驗的。再次,英文資料好像更准確啊。當然還有一些具體的編程技術。
大概又過了一年多,大家都說J2ME快完蛋了,android已經開始大興其道,公司裡面也有人在做android客戶端,可我還在寫沒有前途的J2ME.恰好,qq群里有人發消息說招人,我腦子一熱,扔了份簡歷過去。於是,一個多月後,我就到了新的公司上班,這家公司是一個做手機的廠商,而我也可以參與android的開發。在這個公司的前3個月,基本啥活沒干,除了學習android之外,就是各種培訓和等待。大概待到5個月的時候,我實在坐不住了,我去跟經理說,有沒有活可以給***。經理說我考慮下,不久便安排給我一個項目,讓我去把它維護好了,然後集成到產品裡面。可當我拿到代碼時,傻眼了,2w多行代碼,而且很多地方寫的很復雜,看了好幾天也沒看懂。好吧,不管了,這件事既然是我負責,那怎麼都應該挺住。在接下來的快2個月里,我每天都撲在這兩萬多行代碼里,解決裡面的bug,理解裡面的設計思路、代碼風格、編程技巧,使用公司的工具鏈,從發布、審核到持續集成等等。我了解到了很多我平時不知道的東西,我解決了發現了的所有的bug。可是最終,我並沒有把這個項目維護到可以發布的程度,最後一關的AT&T的穩定性測試宣判了我的這個項目的死刑,隨後這兩萬多行代碼慢慢的從我的提交列表裡面消失掉了。我第一次明白了,竟然還有如此嚴格的質量測試,也明白了什麼叫風險與代價,雖然這些代碼,我已經用monkey模擬跑過了5個鍾頭,但是依然被ATT測試蹂躪2個鍾頭之後掛掉。......
問題三:自學程序員需要多長時間自學程序員,難不難要看你肯不肯多花時間在上面,有很多方面要涉及,對於編程語言更是需要你多實踐多上機,才能有所收獲,當然如果你很喜歡編程的話,你也會發現編寫程序也是一件很有樂趣的事情,完成了也很有成就感。當然,要考程序員,光編程還是不夠的,暢需要涉獵計算機相關方面的知識
問題四:自學成為程序員一般需要多久程序員有很多開發語言每個開發語言學習周期都不同零基礎從入門到熟悉怎麼著也得半年基本上要1年多三到五年能精通
問題五:當程序員要學習多久?學完了多少錢一個月?看你學到什麼程度!看你學多少科目。計算機語言編程常見的大概有10種以上。
大多數大城市的普通程序員都是IT業的民工。工資談不上高,工作壓力大
問題六:通過自學從小白到程序員需要多久學習需要多久就看自己的時間分配了。自學需要的時間真的不好說,有的人一年也許能學到入門了,有的人啥也沒學到。
問題七:程序員難學么要學多久才是中級java你要知道一個問題,並不是你學的越久就能達到中級高級,首先你要知道中級的要掌握什麼樣的技術,比如主流框架,優化資料庫等等,還要有一定的工作經驗,解決自己或者別人工作中遇到的各種問題的能力,如果沒有,你掌握再多也只不過紙上談兵而已
問題八:自學程序員要多久,如何找工作這個時間就說不準了,自學得看你自己的自製力和接受能力。一般在培訓學的話就4個月,自學估計得要更長時間。至於找工作,自學會有點難度,只能說碰運氣了。個人不建議自學
問題九:學習編程到成為一個能賺錢的程序員最快要多久這個要看學習編程的天賦了。賺小錢的技能的話,一周左右就可以了
零基礎學習Java幾個月能學完?零基礎學習Java幾個月能學完?參加Java培訓多長時間可以畢業,其實學習這件事情是無止境的,即便我們參加Java培訓之後步入到工作中還需要我們不斷地學習和提成因為這是升職加薪的秘籍,其實很多Java培訓機構培訓周期大概四五個月的時間,如果選擇周末班可能時間火稍長一些,當然如果選擇購買Java視頻教程那時間就看自己自覺啦!零基礎學習Java建議參加線下Java培訓班。
零基礎學Java需要多久
首先想要知道到底需要學多久,得先知道你想學到什麼程度,相信現在沒有任何一個人敢說自己精通Java。
如果是想要學習到能夠找到一份初級Java開發工程師的職位的程度的話,一般參加培訓班的同學需要4~6個月左右的時間即可,自學Java的自學時間可能會長一些,一到兩年的時間甚至更長。
Java培訓班的課程都是按照零基礎的標准來設計的,所以小白同學也不用擔心自己學不會跟不上進度的問題,課程本身就是循序漸進,並且還有講師全程教學授課有不懂的問題隨時都有老師幫助你理解,所以只要你靜下心來學習4個月左右的時間是完全能夠學到入門程度找到一份Java初級程序員的工作。
這里提到的4個月時間可不是說學完4個月之後就結束了,雖然已經能夠達到初級Java開發者的標准,但你想要持續提升技能的話還需要學習新的技術知識,這些就需要同學們在職的時候利用業余時間學習了,IT行業技術更新換代的速度很快,如果不及時學習新的知識很容易就會被淘汰掉的。
其實關於關於零基礎學習Java幾個月能學完?沒有一個固定的概念,因為要看自己准備學習到什麼程度,因為學習本來就是意見無止境的事情,何況Java技術呢!更新換代,我們需要不斷的提升自己,如果你也打算參加Java培訓不妨填寫下面表單來昆明北大青鳥參加Java培訓班免費體驗課程。
免責聲明:內容來源於公開網路,若涉及侵權聯系盡快刪除!
程序員一般要學多久?
如果零基礎,全日制學習,一般需要4個月左右,時間太短應該學不會。有短期的4個月和長期的2年,費用一般在1萬。
一般學習it技術需要花費的學費是不一樣的,不同的地方收費標准也是不一樣的,在學習信息技術的時候,初學者經常犯的錯誤是只要速度,而不注意基礎知識的學習,這樣無論是學習後期,還是參加工作後,都會覺得很難,因此一開始就要牢牢掌握計算機的基礎知識,比如軟體系統,計算機網路知識和資料庫知識。
(3)程序員的三個難題擴展閱讀:
程序員培訓注意事項:
弄清楚整體流程,掌握全局才能形成清晰的思路,就如同寫作文要先寫提綱一樣。
理順各個模塊之間的關系,才能更好的銜接各模塊來完成相應功能。
做介面時,要考慮使用者的感受是否易用,並且盡可能少的向使用者暴露內部的實現過程,簡化使用過程。
正常分支總是少數,大部分情況下都是異常分支,可以用2-8定律來形容,因此對異常處理很重要。
自學java編程,要多久能學會?因人而異,例如一個零基礎的小白自學java,每天學習8個小時來算,而且在有學習資料的基礎上,每天學習,從零到找到工作,起碼要半年起步,而且還要有項目經驗,否則是不會有公司要你的。千鋒教育就有線上免費Java線上公開課。
而一個有一些基礎的人,在經過有人系統的教學後,是可以很快學會掌握java的,大概3個月左右。不過java相對於C,C++java而言,java無疑簡單了很多,不需要指針,不需要銷毀對象,使得對java初學者來講更容易入門,挫折感也少。但是自學也是最難堅持的,如果自製力不夠強的話,建議報班學習!身邊有沒有一個好的學習氛圍,極容易半途而廢。Java程序員基本上都是高薪待遇的,而通過Java培訓課程的學習,是相對而言比較便捷的成為Java程序員的方法。如果想了解Java更多相關知識,建議到千鋒教育了解一下。千鋒教育目前在18個城市擁有22個校區,年培養優質人才20000餘人,與國內20000餘家企業建立人才輸送合作關系,院校合作超600所。
學習java一般需要多長時間我們大家學習Java從入門到能掌握可以找到一份工作,平均周期在三年左右,也有一些兩年就自學完成的,而且我個人認為報培訓班是很需要的,我們大家在剛接觸Java的時候,會有些迷茫,不知道該從哪裡入手,那是因為在學習上沒找到對的方法。
學習是場持久戰,短時間的突擊學習收獲並不是很大,學習重在行動、貴在堅持,能堅持下來才是最難能可貴的。
學習java,說實話,入門並不難,但是學精可不容易!對於零基礎學習java編程所需要的時間也是受很多因素影響的,比如,你自身的學歷,學習態度,是自學還是培訓等,所以無法用一個確定的時間段來進行評估。
對於零基礎的學生來說,想學好java編程,參加專業的軟體編程培訓是很有必要的。專業的軟體學校都是因材施教,針對不同的人群開設不同的班級,學的時間也有所不同,一般情況下,高中生是兩年時間,大學生是6個月左右的學習時間。
如果是自學的話,自學的話比較考驗你的學習能力與自律能力,想要熟練掌握Java技術,至少需要兩年左右的時間(高中生的話那時間會更長)!不過也有學得快的,建議您如果自學的話,可以採納!
1、找一個行業當中的師傅進行規劃和指導。
2、每天規劃好學習時間,不要中斷。
3、先掌握了解知識體系後編寫項目,邊抓細節。
java應用廣泛,課程體系全面,零基礎通過自學Java最終找到一份Java開發的工作,其實這件事還是有難度的。沒有好的學習教材以及良性的學習規劃、遇到難題無法解決導致學習效率很低、作為一個零基礎的初學者沒有人指導帶著學都是需要克服的問題。
培訓的話,一般培訓機構會根據課程安排及大綱進行教學,通過6個月左右的時間,就能掌握Java編程技術,將所學與項目結合,邁出程序員職業道路的第一步,隨著工作經驗的積累,薪資只會增長。
記住,學java還要看興趣,如果你真的深入學習,你會發現「學java要多久?」是個毫無意義的問題,不要忘記,技術的道路更新實在太快。人只有在不斷學習,才能走在技術的最前端。也許一輩子都要學呢?活到老,學到老,而且互聯網技術更新迭代很快,只有不斷學習才能更上時代不被淘汰。
學編程難不難,一般要學多久從零開始學編程一般需要4-6個月。入門編程應該先學入門C語言或者python:C語言語法簡單,有良好的邏輯抽象,如果是要更全面、深入地學習語言本身就C。python語法更加簡單簡潔易學,而且有各種強大的庫,擴展庫,如果是為了通過編程這一手段來迅速地做出有用、實用的程序和界面可以學python。現代很多語言都是從C語言發展而來的,所以可以以C語言做跳板進階其他面向對象的高級語言。慢慢接觸C++,或高級編程語言(如:Net,Java等),網頁設計相關的語言(HTML+CSS+Javascript)。如果想做一個程序員,在沒有基礎的情況下,買書自學是一個辦法,但是大多數人會因為沒有相關的基礎知識,導致看書看得一知半解,在不了解的時候,買的書不確定一個方向,編程語言太多了:java、C++、python、PHP、C等,需要確定方向,從基礎學起,建議零基礎學編程的小夥伴從C語言開始學起,C語言入門比較簡單,會提升自信心。
自學編程入門一定要階段性的看到成果,這個「成果」並不是在「黑匣子」裡面實現,要在用戶展現界面呈現,很容易提升信心。
機器語言
在計算機系統中,一條機器指令規定了計算機系統的一個特定動作。一個系列的計算機在硬體設計製造時就用了若干指令規定了該系列計算機能夠進行的基本操作,這些指令一起構成了該系列計算機的指令系統。
在計算機應用的初期,程序員使用機器的指令系統來編寫計算機應用程序,這種程序稱為機器語言程序。使用機器語言編寫的程序,由於每條指令都對應計算機一個特定的基本動作,所以程序佔用內存少、執行效率高。缺點也很明顯。
Ⅳ 編程究竟難在哪
1. 難在思路的構建
你學了很多語法,很多 API,但是當給你一個實際問題,讓你通過編程實現,不是簡單地羅列 API 即可完成,而是需要你對問題進行分析,理清解決問題的邏輯,然後再通過各種演算法、數據結構和 API 等進行編程實現。
2. 做出來容易,做好難
當你解決了思路構建的難點,解決了一個問題,但是你是否使用的最好的方法,這就是所謂的做出來容易,做好難。
寫的程序能夠解決問題且沒有 bug 是基本要求。這里的做好不是指功能正確,而是寫的程序容易理解,能夠很容易讓其他接手的程序員(水平不差)看懂為什麼這么寫。
正確是現在怎麼寫不會挖坑害將來的人,現在怎麼寫能讓別人1年後看你代碼時候不可能理解錯你現在的意圖,現在怎麼寫能在別人將來犯錯的時候提示他你錯了。
編程是給未來的未知人講故事,你無法知道將來這個人是誰,他都懂什麼,他經歷過什麼,這個系統將來已經是什麼樣子了。我們需要在這種無知,缺乏信息的情況下做決定,從千萬種把這件事做出來的方法里,選出你覺得最能把這個故事給講好的那種方式,把故事寫下來。
編程是一種溝通,用程序跨越時空之溝通則是一門屬於程序員的特有的藝術 —— 阿萊克西斯
3. 規范性好,有良好的可擴展性
並且程序的可擴展性,規范性高,後期維護難度小。整體功能實現的過程中,各種情況考慮規范。其實學習編程和學習其他內容一樣,沒有什麼太大差別。心態放好,用對方法,你就能夠學好。重要的是學知識的人是什麼樣子,而不是學的是什麼。
在這給你一些學習編程的建議,希望對你有用。
1. 讓編程成為一個習慣
想要培養一項技能的最好的辦法,就是將他融入到我們的生活並成為我們的愛好。其實說白了,就是讓這個愛好成為一個習慣,一天不去做這件事情,都會覺得少了什麼。在不知不覺中,這個習慣會像滾雪球一樣積累起來。
對我來說,養成這種習慣首先就是要對「拖延症」說不。比如,你想鍛煉下自己的寫作能力時,但是沒有好看的本子,沒有好的靈感,沒有安靜的環境....總之就是找各種理由一拖再拖,最後就不了了之了。
為自己設定一下,每周拿出幾天,每天拿出幾個小時,編程學習就這樣慢慢步入正軌。
2. 將每天的學習過程拆分成小塊
對待編程學習,我們沒必要像健身狂人那樣一口氣做到筋疲力盡。與其直接編程2小時,我們完全可以先做40分鍾、然後休息5分鍾,整個過程重復4次。很明顯。