① 我是幹了八個月的程序員,幹了十幾年的同事給我說我腦子不靈活,思維嚴謹,我是不是該轉換一下做事思路
既然他這么說,而且他有十多年的工作經驗,那肯定只看出了你工作上的一些弊端,那你可以虛心的請教他,你也應該轉換一下工作思路,因為程序員這工作比較枯燥,但是也不能太死板。能盡量寫短一些的代碼就完成工作比繞個大圈寫一堆代碼完成工作要好得多呀,效率也高。
② 江蘇北大青鳥:程序員如何提升演算法思維
持續學習,持續開發,是目前主流IT業界程序員的一個生活常規,在現代技術迭代速度非常快的情況下,只有不斷保持自我學習和探索才不會與時代脫節。
無論是專業的IT從業者還是IT小白,都需要培養自己的演算法思維。
江蘇電腦培訓http://www.kmbdqn.cn/發現擁有良好演算法思維後的直接好處有:更高的面試成功機會,和更快的日常問題處理能力。
何為演算法思維,並不是對一些已經設計好的優秀代碼的反復背誦和背板,而是自己對於問題的抽象能力的練習,即從抽象問題到實際進行編碼或者設計程序解決問題的一個能力,如果單純對於一些演算法進行背誦的話,我們的思維能力不會得到提升,最多就是熟練的碼農而已。
所以,當看到別人設計的優秀演算法後,我們一定要探尋演算法背後那「曲徑通幽」的思維之路。
只有經歷了思維之路的磨難,才能永遠佔有一個演算法,並有可能舉一反三,或者是設計一個巧妙演算法。
個人認為,對於提升演算法思維的方法,首先我們需要深入思考各種苦惱的問題,例如:假設我喜歡租車出行,那麼對於某一個地方的停車點一般在什麼時候有車的機率最大?有車的概率是否與天氣,溫度等因素有關?我希望可以在回家之前通過手機APP讓家裡的空調提前工作起來,但是我非常Geek,不想使用現成的產品而想自己實現一個,和同學吹牛的時候可以更加脫穎而出?在明確了這些問題以後我們就可以開始思考如何嘗試寫一個小的程序來幫助自己解決,這個時候如果手頭有一個習慣的語言就非常合適了(比如我個人就喜歡Python,有很多庫可以使用,而且入門非常容易),如果沒有的話,可以去看看各個語言合適的場景,不過對於爬蟲、數據分析相關個人認為更加貼合日常生活的項目來看,還是考慮直接從Python3起步比較好,後期如果想用樹莓派做點智能家居相關的項目的話Python也是非常合適的。
對於Python的學習,目前有很多非常成熟的課程,可以覆蓋各個不同的能力范圍,這里著重推薦Coursera的視頻課程,配合本地IPython或者LeetCodePlayground一起調試和練習,可以獲得很好的效果。
③ 程序員的邏輯思維可以從哪些方面學習呢
邏輯思維的培養對軟體工程非常重要,思維快的能快速編寫邏輯代碼。可以從一下幾個方面進行慢慢培養。
第一:明確學習目的
邏輯思維學習編程對多數IT業人員來說都是非常有用的。學編程,做一名編程人員,從個人角度講,可以解決在軟體使用中所遇到的問題,改進現有軟體,可以為自己找到一份理想的工作添加重要得砝碼,有利於在求職道路上謀得一個好的職位;從國家的角度,可以為中國的軟體產業做出應有的貢獻,一名優秀的程序員永遠是被爭奪的對象。學習編程還能鍛煉思維,使我們的邏輯思維更加嚴密;能夠不斷享受到創新的樂趣,將一直有機會走在高科技的前沿,因為程序設計本身是一種創造性的工作。知識經濟時代給我們帶來了無限的機會,要想真正掌握計算機技術,並在IT行業里干出一番事業來,有所作為,具有一定的編程能力是一個基本條件和要求。
第二打好基礎,學好基礎知識對我們開發也很重要學編程要具備一定的基礎,總結之有以下幾方面:
首先是數學基礎 從計算機發展和應用的歷史來看計算機的數學模型和體系結構等都是有數學家提出的,最早的計算機也是為數值計算而設計的。因此,要學好計算機就要有一定的數學基礎,出學者有高中水平就差不多了。
其次是邏輯思維能力的培養 學程序設計要有一定的邏輯思維能力,「邏思力」的培養要長時間的實踐鍛煉。要想成為一名優秀的程序員,最重要的是掌握編程思想。要做到這一點必須在反復的實踐、觀察、分析、比較、總結中逐漸地積累。因此在學習編程過程中,我們不必等到什麼都完全明白了才去動手實踐,只要明白了大概,就要敢於自己動手去體驗。誰都有第一次。有些問題只有通過實踐後才能明白,也只有實踐才能把老師和書上的知識變成自己的,高手都是這樣成材的。最後是選擇一種合適的入門語言 面對各種各樣的語言,應按什麼樣的順序學呢?程序設計工具不外乎如下幾類: 1)本地開發 應用軟體開發的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;資料庫開發工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。 2)跨平台開發 開發工具如 java 等。 3)網路開發 對客戶端開發工具如:Java Script 等;對伺服器開發工具如:PHP 、ASP 、JSP 、ISAPI 、NSAPI 、CGI 等。 以上不同的環境下幾種開發工具中 VB 法簡單並容易理解,界面設計是可設化的,易學、易用。選 VB 作為入門的方向對出學者是較為適合的。
第三:注意理解一些重要概念
一本程序設計的書看到的無非就是變數、函數、條件語句、循環語句等概念,但要真正能進行編程應用,需要深入理解這些概念,在理解的基礎上應用,不要只簡單地學習語法、結構,而要吃透針對這些語法、結構的應用例子,做到舉一反三,觸類旁通。
第四:掌握編程思想,編程思想使用較多的就是oop編程思想
學習一門語言或開發工具,語法結構、功能調用是次要的,最主要是學習它的思想。例如學習 VC 就要學習 Windows 的內在機理、什麼是線程......;學習 COM 就要知道VTALBE 、類廠、介面、idl......,關鍵是學一種思想,有了思想,那麼我們就可以觸類旁通。
第六:多實踐、多交流,一切思維來自項目開發的積累
掌握編程思想必須在編程實際工作中去實踐和體會。編程起步階段要經常自己動手設計程序,具體設計時不要拘泥於固定的思維方式,遇到問題要多想幾種解決的方案。這就要多交流,各人的思維方式不同、角度各異,各有高招,通過交流可不斷吸收別人的長處,豐富編程實踐,幫助自己提高水平。親自動手進行程序設計是創造性思維應用的體現,也是培養邏輯思維的好方法。
第七:養成良好的編程習慣
編程入門不難,但入門後不斷學習是十分重要的,相對來說較為漫長。在此期間要注意養成一些良好的編程習慣。編程風格的好壞很大程度影響程序質量。良好的編程風格可以使
程序結構清晰合理,且使程序代碼便於維護。如代碼的縮進編排、變數命令規則的一致性、代碼的注釋等。
第八:上網學編程
在網上可以學到很多不同的編程思想、方法、經驗和技巧,有大量的工具和作品及相關的輔導材料供下載
8.加強計算機理論知識的再學習
思維培養學編程是符合「理論→實踐→再理論→再實踐」的一個認識過程。一開始要具有一定的計算機理論基礎知識,包括編程所需的數學基礎知識,具備了入門的條件,就可以
開始編程的實踐,從實踐中可以發現問題需要加強計算機理論知識的再學習。程序人人皆可編,但當你發現編到一定程度很難再提高的時候,就要回頭來學習一些計算機科學和數
學基礎理論。學過之後,很多以前遇到的問題都會迎刃而解,使人有豁然開朗之感。因此在學習編程的過程中要不斷地針對應用中的困惑和問題深入學習數據結構、演算法、計算機
原理、編譯原理、操作系統原理、軟體工程等計算機科學的理論基礎和數理邏輯、代數系統、圖論、離散數學等數學理論基礎知識。這樣經過不斷的學習,再努力地實踐,編程水平一定會不斷提高到一個新高度。
④ 程序員日常生活面臨的問題和挑戰有哪些
一、熬夜
很多程序員將熬夜變成了生活習慣,還口口聲聲解釋「程序員只有在晚上效率才高」,這是非常扯淡的理論。有人將程序員做下圖的類比,雖然比較貼切,但這種方式對你的健康傷害是最大的。建議你嘗試一下晚上10點睡覺,早上6點起來工作的作息方式,也許會事半功倍。
二、久坐
有些程序員在電腦面前一坐就是一天,中間除了吃飯上廁所外,基本不起來動動。這是非常不好的習慣,時間久了,很容易得肩周炎、頸椎病,到時候後悔就晚了。建議每坐一個小時就起來動10分鍾,主要是轉轉手臂和脖子。
三、外賣和泡麵
很多程序員在飲食上也非常不注重健康,上班的時候為了貪圖方便經常叫一些外賣,更厲害的是直接搞一桶方便麵來做午餐。這里建議大家中午出去吃,葷素搭配,再可以弄點水果。
四、缺乏鍛煉
建議在工作日下班後做一些簡單的球類運動,乒乓球、羽毛球。
五、用眼過度
IT公司的員工的體檢報告中大部分程序員都患有「慢性結膜炎」,當然對於這個病並不是長時間對著電腦引起的,但是用眼過度也會加劇「慢性結膜炎」的惡化。
建議大家平時准備防止眼乾的眼葯水,如果確定是結膜炎的話,還要及時去醫院就診。另外電腦的背景可以設成綠色,這樣對眼睛也能起到一定的保護作用。
⑤ IT技術人員必須思考的幾個問題,千萬別不當
1.搞IT的是屌絲、碼農、程序猿?
人們提到IT人的時候,總會想到他們呆板、不解風情,專注於IT技術,就算性感的美女躺在旁邊也無動於衷。事實真的是這樣嗎?雖說不能完全否定有這樣的情況存在,但這是IT人普遍的特點嗎?而其它行業也有很多這樣的人,那為什麼人們總是拿程序員說事?下圖為2013年網上曾經流傳的一張屌絲分布圖(圖片來自3dmgame.com),程序員行業居首。
而實際上,問題並不在於IT行業擁有這些固有的標簽,而是行業內的人看待自己的態度。IT行業大多都很辛苦,「朝九晚五」只是聽說過,很多IT人都沒有見過,這是大家都知道的事實。那麼,不排除某些程序員需要在苦中找樂子,好讓辛苦的工作多一份樂趣,這當然是可以理解的了,生活總不能像程序一樣執行。
而正因為IT行業很辛苦,整天只能與機器打交道,慢慢地就不想跟人說話、不想出門,經常就會有程序員在社交網路吐槽。「程序猿」是用來形容IT人呆板、情商低的特徵;「碼農」用來形容程序員的工作跟農民一樣辛苦,賺不到錢;「屌絲」就是前面兩者的結合了。
因此,程序員為自己貼這幾個標簽的原因主要有兩個,一個是找樂子,另一個就是吐槽了。那為什麼行外的人也來湊熱鬧?記得多年前,當筆者還是個朦朧的高中生的時候,就特別崇拜程序設計師,在我心裡他們就是社會的精英。而其他的人,對IT行業也很有神秘感。當時的人要想去編程,要麼有興趣和天賦,要麼畢業於相關專業,否則是難以勝任的。而現在的情況就不同了,外面的軟體開發培訓機構都在面向初中和高中畢業生招生了。越來越多的人可以接觸到軟體開發,而進入這個領域的人中,能力參差不齊,目的各不相同,有發展得很好的,也有發展得不理想的。所以,行外的人印象中的高薪行業,行內卻有不少人並沒有拿到高薪;行外的人覺得這是一個精英行業,而行內不少人認為自己跟工地上的搬磚工差不多。
那為何面對行外的調侃時,很多程序員表現得如此淡定?原因就很簡單了,如果程序員對自己都是這種「調侃」的態度,別人怎麼調侃都無所謂了,甚至還表現出歡迎或者引起共鳴。
2.如何看待工作中的加班以及確保自身健康?
加班可以分為主動加班和被動加班。
先談談主動加班,主動加班也是有不同的動機,很多時候分為兩類,一類是熱衷於自己的事業,願意奉獻更多的時間和精力在事業上面;另一類是,回家後就找不到成就感與幸福感,還不如留在公司,可以做一些工作,也可以玩一會兒游戲,一般不會有領導去干涉員工在下班時間做的事情,而且還可以節約一點空調的電費,有些公司還會提供加班補貼,因此他們覺得多在公司呆幾個小時也挺好。
而被動加班的原因就沒那麼簡單了。有可能造成被動加班的原因很多,它可能來自公司、領導、團隊、個人以及一些不可抗拒的因素。
在創業公司,因為業務變動頻繁,公司的決策和方向,也會瞬息萬變,這就需要團隊成員花更多的時間去應對這些變化,因此正常的八小時工作制一般不適合創業公司,除非創始團隊足夠牛,能保證非常好的工作效率、市場洞察力和執行力。當然在大公司一般不會出現業務頻繁變動的情況,不然這家公司就是瀕臨倒閉了。在國內某些互聯網巨頭中,加班不僅已經成為家常便飯,而且有時候可以以「變態」來形容。某985高校畢業生A在畢業後進入某互聯網巨頭(為了保護相關人員或組織的隱私,本文盡量不出現特定人員或組織的名稱)承擔開發工作,在試用期三個月里兢兢業業,每天晚上24:00左右下班回家,試用期結束以後,轉正考核以優秀通過。A憑借較強的學習能力,這時對自己項目組的業務和技術非常熟悉,已經可以提前完成領導安排的任務,甚至還主動去改進項目組的程序。隨著工作效率的提高,A感覺沒有必要跟其他同事一樣必須呆到23:00之後才回家了,所以慢慢的他提前離開了,23:30,23:00,22:30,22:00,21:30。隨著時間一點一點提前,雖然他的工作任務都保質保量完成了,但是他在領導眼裡被貼上了「不盡職」的標簽,月度考核從最初的A滑到了C。
而團隊所帶來的加班有些時候也是不可避免的,這涉及到團隊的分工與合作,如果經常出現團隊之間的協作導致的加班,那一定是團隊成員工作的耦合度太大了,就有可能是技術架構或者團隊分工出現嚴重問題。
個人導致的加班,可能是由於自己沒有較為准確地預估工作量,也有可能是自己拖延症嚴重,還有可能是自己對技術不夠熟悉等原因,其實個人原因最好解決,因為自己可以輕松地找到這類加班問題的症結,並對症下葯。
其它一些不可抗拒的因素,包括需求變動、硬碟永久性損壞等,都會帶來很多額外的工作量。
而當前國內大多數IT技術人員都是被動加班,而且是強制性質的,只有極少數公司提供加班費。因此,很多技術人員只有兩種選擇,要麼適應,要麼走人。而在中國這樣一個發展中國家,也很難期待當局會強烈干涉這個現象。
前不久一則「深圳36歲IT男猝死馬桶蓋上」的新聞在互聯網引起轟動,一個清華畢業的程序員,在長期連續加班之後,終因身體透支過多,年輕的生命就這樣倒下了。從尊重生命的角度來說,事業、公司和客戶都沒有自己的生命重要,若事業與生死只能選擇一個,相信絕大多數人會選擇生存。而從所謂的「XX比生命還重要」的角度而言,如果你能夠承擔長期過度加班所帶來的後果,或者原意像革命先烈一樣為自己的事業獻出生命,那誰也沒法阻止你。
3.技術牛人如何對待新手?
在公司里(特別是大公司),一般會有一些技術大牛,他們是公司核心的技術人員,支撐著整個公司的技術平台。那些可以稱得上技術專家的員工,一般性情隨和,也表現得非常謙卑,他們對於技術新手的提問特別有耐心。但是也有少數技術還不錯的人,對於職場新手各種瞧不起,特別是對於新手程序員犯下的錯誤,他們會用盡可能高的音量指出錯誤,甚至是謾罵,以此來向周圍的人表明自己的技術是多麼牛。只能說,作為IT技術人員,這樣的表現很不成熟。高手或專家都是從小白起家的,今天的小白也許就是明天的專家,根本沒有必要去嘲諷職場新人,那樣只會讓自己在同事眼裡的魅力大打折扣。
4.是否經常把自己的思想強加給同事?
程序員群體有個比較普遍的現象就是,總覺得自己的想法是最好的。而人人都有自己的想法,只是有些人喜歡表達出來,而有些是埋在心裡。允許他人評判你的想法,客觀去分析他們的觀點,而不是粗暴地強加給他們,這是一種個人魅力。
5.IT人可以做多久的技術?
筆者在大學期間,經常聽人說IT人是吃青春飯的,過了35歲就寫不了代碼了。如果幹到了35歲還停留在寫代碼層面上,估計那時是干不過畢業沒多久的年輕人了。
6.如果某一天計算機自動編程不需要人類編程了,你還可以做什麼?
隨著人工智慧技術的發展,若未來機器可以代替程序員進行編程了,程序員還能做什麼呢?計算機和互聯網的發展,消滅了很多傳統職位,但隨著科技的不斷發展,程序員這個職位也許會有一天也被消滅了。當全球的IT公司都宣布廢除人工編程時,程序員應該是回家還是轉行呢?
7.如何定義成功
畢業多年後,同學之間總會有人討論誰混得好誰混得差。那麼好與差的標準是什麼呢?是賺了多少錢,有沒有在北上廣深買房,當了多大的官、是否在BAT工作?不同的人有不同的評判標准,但多數是以錢來衡量他是否成功。但成功的標准就這么單一?如果一定得給成功下一個定義,那麼成功應該這樣來計算:
成功度(S)=(工作快樂度*工作快樂權重+工作薪資*薪資權重+ ... + 生活快樂度×生活快樂權重 + 家庭和睦度*家庭和睦權重 + ...)/n
這里S最大者才是最成功的人。
希望可以幫到您,謝謝!
⑥ 程序員想要全面發展需要注意哪些問題
一個人能力的成長不局限於技術能力的提高,而是全面發展,這就要求我們在工作中不斷總結和反思。對於程序員來說,工作中的成長是必不可少的,如何才能更好的進行全面發展呢?下面雲南java培訓為大家介紹程序員想要全面發展需要注意的問題。
程序開發是需要進行團隊合作的,一個優秀的軟體產品自始至終是無法由一個人做出的,所以昆明UI設計認為想要成就一個完美的產品,一定不能小看團隊的力量。
溝通技巧是導致項目成功或失敗的關鍵性因素。與技術相比,雲南計算機學習認為溝通技術對一個項目的成功起著重要的作用。如果我們召集了全世界的5名資料庫專家,但是他們按照自己的意願行動,並且也不互相進行溝通,那麼最終是無法達到目標的。
如果你想做好工作,不僅要了解這些業務,而且要積極參與其中。即使你不屬於公司的C位,它也不會影響你,至少,你需要了解你在做什麼。如果代碼審查使您感到壓力,那麼雲南昆明IT培訓會發現在打開時一定存在錯誤。雖然我們不必這樣想,但很多人會感到急於發布自己的代碼,讓別人「觀看和評論「。
⑦ 程序員在學習新技術要思考哪些事
先看下面這樣的困惑:
最近了解了幾個MVC的框架,其中有兩個是公司內部的。發現這些東西都是類似的,從處理邏輯到頁面渲染;從service到layout;配置的實現無非就是XML,或者annotation……我有種感覺,興許已經跳不出這個思維圈子了?
如今的時代,是一個概念翻飛的時代,oschina里的開源軟體數量就已經超過了兩萬,五花八門的技術層出不窮,到底什麼技術才是值得學習的?
有位朋友說,他想學習一些關於Android上的開發技術,興趣驅使。幾個月過去了,他說他已經能做出許多小程序了,可是他現在回想起來,掌握一門技術是好,可興趣之外還有什麼呢?他說,「如果我的工作中不使用Android平台,我學它還有何用?」。
學習技術到底是一件有意思的事,還是一件痛苦的事?讀書的時候,我曾經買過侯捷翻譯的《深入淺出MFC》,對那時的我來說,似乎太困難了一點,我強迫自己看完了三分之一,實在是沒有毅力繼續往下讀了。我在其中察覺不到快樂,這本書在當時似乎充滿了生澀。
如上這樣的故事太多了,很多時候,程序員們(包括我在內)辛苦地學習,有的沒有好的效果,有的過程充滿痛苦,有的更是不知道我學它的目的是什麼。
國內的教育體制,培養了這樣一批人:
他們努力、奮進,熱愛技術,願意投身軟體行業,願意寫出高質量的代碼,他們對業界的東西很感興趣,他們願意學習扎實的基礎知識,他們渴求火熱的新技術……
幾年以後,他們擁有廣泛的視野,閱歷寬闊、經驗老到、言辭犀利,對行業動態了如指掌,顯然,他們是行業的博學者。
然而……
他們卻缺乏這樣一種能力——思考。
欠缺思考容易導致這樣的現象:
不會做設計
遇到了問題,拿見到過的、學到了的熟悉的框架、方案、模式往上套,而不仔細分析其中的利弊,只是盡可能地尋找最接近當前問題的解決途徑。
有的是不會做系統設計。和少數所謂的「架構師」接觸過,他們「只懂業務,不懂技術」,這樣設計出來的系統只能滿足功能性需求;而論壇上的一些具體問題的討論話題,則暴露出一些跟帖討論者「只談技術,不提業務」,譬如「XXX大容量的解決方案」、「秒殺系統的終極架構」,企圖對某一類寬泛的問題,設計出一套放之四海皆準的通用解決方案。
還有的則是不會做面向對象設計,缺少抽象和解耦的能力,這樣的例子就更多了。朋友告訴我,他的單位有一位寫Ruby的老員工,一個龐大的工程,代碼裡面居然只有一個上帝類,就搞定了所有的問題。
不能堅持自己的觀點
這一點在面試中最容易觀察到。應聘者有剛畢業的學生,也有工作超過10年的有豐富經驗的從業者。他給出一個粗略的方案以後,在方案沒有細化到一定程度以前,很難給出優劣的評論,但是,如果你輕輕地challenge一下,他就迅速放棄本來的構思,跑到你的思路上來。
例如,SNS系統中,服務端有消息要怎樣通知到客戶端,這樣的一個問題,解決方案有很多種,比如客戶端輪詢、服務端hold住連接推送等,各有利弊。應聘者應當有自己的觀點。
不能細化一個問題解決方案
怎樣區分一個空談家和一個實幹家?給他一個具體的問題是最好的辦法。在我剛工作的時候,我曾經很欽佩那些在活動中、討論中高談闊論的人,我覺得他們很能說。可是後來我逐漸發現,能說的人實在是太多太多了。細化設計、甚至落到編碼,才是對一個程序員真實的檢驗。當然,如果你覺得做軟體設計的人可以不熟悉編碼、架構師可以不首先是一名高級程序員,那我們也沒有什麼可談了 :)。
如果你會學習,你可以成長得很快;如果你不會思考,你永遠只能跟在別人後面。
在新技術的學習上我認為也應當多思考,不同的人有不同的學習動機。在非外界所迫的情況下,對於新技術的學習,我的觀點可以概括為:
它要解決什麼問題,就是所謂的問題域,是我關心的嗎?
我沒有去研究操作系統底層的實現,並非這沒有價值,而是我沒有興趣,這就是問題域的影響(不過現在我有興趣了,我想做一些這方面的事情)。
和過往解決方案它的優勢在哪裡,是否顯著?
這是competition,重復的技術是沒有生存空間的(當然,你是微軟的話除外 :) ),就像互聯網同一個類型的網站,競爭到最後就那麼兩三家。就像Groovy,我很喜歡它,但是有了Scala以後,我覺得興許有一個要死掉(Groovy創始人說,如果他早些知道Scala的話,就沒有Groovy什麼事了。具體的報道請去Google上搜他的blog)。
它的實現和帶來的效果上看,有沒有很有意思的思路,是值得借鑒和思考的?
這是最難講的一個問題。以去年初開始接觸的Node.js為例,它可以做到把後端的聚合(譬如portlet之流)放到前端來,後端只保留一種類型的頁面服務——頁面模板,以及若干易於管理的API介面,大大簡化了後端體系的復雜度,而且還能把壓力分散到前端來,這是我早些年不曾見到的。
這三個問題想過之後,覺得有價值,我才去學習。要不然,對我而言就是不想深入的東西,了解了解也就罷了。
新技術學習的方式呢,我想說這么幾點:
尋找切入點
我很喜歡BlueDavy的blog上的一句話:「理論不懂就實踐,實踐不會就學理論!」。
最後最好是要落到動手實踐上去的,但是倘若習慣從那些原理介紹的文字入手,未嘗不是一種不好的選擇。而且,現實情況會有一些約束,例如在了解幾家互聯網公司的雲平台的時候(Amazon的EC2,M$的Azure等等),除非你是這幾家公司的員工,否則是很難深入其中的。
尋找自己的興趣點
學習應當是一件有意思的事情,當你的大腦排斥它的時候,我不相信可以很容易地掌握這門新技術。如果你找不到興趣點,那麼,不妨回到我前文對於新技術是否值得你學習的觀點上去,既然你沒有什麼興趣,你學它幹嘛?
善於比較
比較是一種非常容易上手的思考方式,和什麼比較?和相似技術比較,和操作系統、網路這些基礎設施上面的例子比較,最後,和生活中的例子比較(譬如,Java NIO的實現是一個很好的例子)。
不斷獲得回饋
回饋是什麼?做出一個HelloWorld的例子,就是一個極好的回饋;理解某一項實現原理,聯想到其它類似的實現,產生一種恍然大悟的感覺,也是一種回饋。在學習的過程中,不斷產生回饋,意味著你不斷地收獲成就感,這是繼續下去的動力之一。
轉載
⑧ 程序員的邏輯思維可以從哪些方面進行培養呢
程序員邏輯思維的培養對軟體工程非常重要,思維快的能快速編寫邏輯代碼。可以從一下幾個方面進行慢慢培養。
第一:明確學習目的
邏輯思維學習編程對多數IT業人員來說都是非常有用的。學編程,做一名編程人員,從個人角度講,可以解決在軟體使用中所遇到的問題,改進現有軟體,可以為自己找到一份理想的工作添加重要得砝碼,有利於在求職道路上謀得一個好的職位;從國家的角度,可以為中國的軟體產業做出應有的貢獻,一名優秀的程序員永遠是被爭奪的對象。學習編程還能鍛煉思維,使我們的邏輯思維更加嚴密;能夠不斷享受到創新的樂趣,將一直有機會走在高科技的前沿,因為程序設計本身是一種創造性的工作。知識經濟時代給我們帶來了無限的機會,要想真正掌握計算機技術,並在IT行業里干出一番事業來,有所作為,具有一定的編程能力是一個基本條件和要求。
第二打好基礎,學好基礎知識對我們開發也很重要學編程要具備一定的基礎,總結之有以下幾方面:
首先是數學基礎 從計算機發展和應用的歷史來看計算機的數學模型和體系結構等都是有數學家提出的,最早的計算機也是為數值計算而設計的。因此,要學好計算機就要有一定的數學基礎,出學者有高中水平就差不多了。
其次是邏輯思維能力的培養 學程序設計要有一定的邏輯思維能力,「邏思力」的培養要長時間的實踐鍛煉。要想成為一名優秀的程序員,最重要的是掌握編程思想。要做到這一點必須在反復的實踐、觀察、分析、比較、總結中逐漸地積累。因此在學習編程過程中,我們不必等到什麼都完全明白了才去動手實踐,只要明白了大概,就要敢於自己動手去體驗。誰都有第一次。有些問題只有通過實踐後才能明白,也只有實踐才能把老師和書上的知識變成自己的,高手都是這樣成材的。最後是選擇一種合適的入門語言 面對各種各樣的語言,應按什麼樣的順序學呢?程序設計工具不外乎如下幾類: 1)本地開發 應用軟體開發的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;資料庫開發工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。 2)跨平台開發 開發工具如 Java 等。 3)網路開發 對客戶端開發工具如:Java Script 等;對伺服器開發工具如:PHP 、ASP 、JSP 、ISAPI 、NSAPI 、CGI 等。 以上不同的環境下幾種開發工具中 VB 法簡單並容易理解,界面設計是可設化的,易學、易用。選 VB 作為入門的方向對出學者是較為適合的。
第三:注意理解一些重要概念
一本程序設計的書看到的無非就是變數、函數、條件語句、循環語句等概念,但要真正能進行編程應用,需要深入理解這些概念,在理解的基礎上應用,不要只簡單地學習語法、結構,而要吃透針對這些語法、結構的應用例子,做到舉一反三,觸類旁通。
第四:掌握編程思想,編程思想使用較多的就是oop編程思想
學習一門語言或開發工具,語法結構、功能調用是次要的,最主要是學習它的思想。例如學習 VC 就要學習 Windows 的內在機理、什麼是線程......;學習 COM 就要知道VTALBE 、類廠、介面、idl......,關鍵是學一種思想,有了思想,那麼我們就可以觸類旁通。
第六:多實踐、多交流,一切思維來自項目開發的積累
掌握編程思想必須在編程實際工作中去實踐和體會。編程起步階段要經常自己動手設計程序,具體設計時不要拘泥於固定的思維方式,遇到問題要多想幾種解決的方案。這就要多交流,各人的思維方式不同、角度各異,各有高招,通過交流可不斷吸收別人的長處,豐富編程實踐,幫助自己提高水平。親自動手進行程序設計是創造性思維應用的體現,也是培養邏輯思維的好方法。
第七:養成良好的編程習慣
編程入門不難,但入門後不斷學習是十分重要的,相對來說較為漫長。在此期間要注意養成一些良好的編程習慣。編程風格的好壞很大程度影響程序質量。良好的編程風格可以使
程序結構清晰合理,且使程序代碼便於維護。如代碼的縮進編排、變數命令規則的一致性、代碼的注釋等。
第八:上網學編程
在網上可以學到很多不同的編程思想、方法、經驗和技巧,有大量的工具和作品及相關的輔導材料供下載
8.加強計算機理論知識的再學習
思維培養學編程是符合「理論→實踐→再理論→再實踐」的一個認識過程。一開始要具有一定的計算機理論基礎知識,包括編程所需的數學基礎知識,具備了入門的條件,就可以
開始編程的實踐,從實踐中可以發現問題需要加強計算機理論知識的再學習。程序人人皆可編,但當你發現編到一定程度很難再提高的時候,就要回頭來學習一些計算機科學和數
學基礎理論。學過之後,很多以前遇到的問題都會迎刃而解,使人有豁然開朗之感。因此在學習編程的過程中要不斷地針對應用中的困惑和問題深入學習數據結構、演算法、計算機
原理、編譯原理、操作系統原理、軟體工程等計算機科學的理論基礎和數理邏輯、代數系統、圖論、離散數學等數學理論基礎知識。這樣經過不斷的學習,再努力地實踐,編程水平一定會不斷提高到一個新高度。
這就是總結出來的思維培養模式,希望能幫到你,謝謝!
⑨ 程序員可能遇到的問題有哪些
很多人都說程序員是很苦很累的職業,但是這只是外表看到的,如果不深處其中是無法感受的。程序員也會出現很多無法解決的困難,除了身體上的累以外,在工作中還會遇到很多煩惱的事情,這些事情可能是什麼呢?下面雲南電腦培訓為大傢具體介紹。
1、錯誤的團隊
如果你不幸選擇了一個錯誤的團隊,經常遇到問題是不可避免的。很多時候並不是任何人的錯,但是團隊裡面的人會因為各種問題感到不開心,或者對瑣碎的事情感覺到厭惡,這些都是影響團隊氛圍的關鍵點。如果其他人只關心自己的職業生涯,這將是一個糟糕的隊友,所以雲南IT培訓認為一個錯誤的團隊會讓你度過一個艱難的時光。
2、荒謬的要求
一些項目需求就像科幻小說,非常抽象,而且根本不實際。擁有想像力的項目肯定是好的,但想像力必須適應團隊。如果項目團隊中有很多近期畢業生,那麼昆明IT培訓認為想要在項目中使用抽象內容是不太可能的,想要創建出最好的內容更是困難。
3、外行的期望
過高的期望值反而會影響程序員的發揮, 現在很多外行人對程序員的了解非常片面,導致對程序員的期望值過高,把程序員想像成超人。其實對於程序員來說,一個項目的開發和實施是需要很長過程的,並且還需要進行多次調試,程序員需要更多的時間進行調試。外行人應該對程序員做到正確的認識。
4、咖啡中度過夜晚
在很多情況下,超負荷的工作是經常的事情,嘗試完成超越身體極限的工作量。昆明電腦培訓發現如果當項目遇到問題的時候,需要非常盡力的去解決問題,這是會增加額外的加班時間,很多時候可能會直接工作到深夜。對於程序員來說,遇到問題,及時解決問題是非常重要的,咖啡能夠幫助程序員度過漫長的黑夜。
⑩ 為什麼程序員的思維很難理解
1、程序員的思維比普通人要嚴謹。
對編程有一定了解的人都能理解這一點,一是一二是二,電腦不認模稜兩可的回答,因為「模稜兩可意味著更多的可能答案」,所以你跟程序員交談的時候,如果你問他「為什麼要這樣問」或「你為什麼聽不懂」,你就會知道你自己的描述有多麼的不嚴謹了。
最簡單的例子,你媽媽讓你去市場買水果,如果看到有蘋果就買一個蘋果,看到梨就買兩個。你看到市場有蘋果和梨,你會買什麼回家?
首先給出一個大前提,在程序上不存在「潛台詞」或者「潛規則」這種東西,唯一起作用的只有「字面意思」。
一般人肯定是買一個蘋果和兩個梨。當然程序員也不是腦子有坑,以一個正常人的思維考慮也會買一個蘋果和兩個梨,但是看到這問題的第一個瞬間的直覺反應,卻是「如果看到梨就買兩個蘋果」。這個問題不存在潛台詞,所以所有人都會直接從字面理解老媽的意圖。
按照程序的邏輯分析,這句話共分為兩個部分,代表兩個程序任務。「如果看到有蘋果就買兩個蘋果」為任務一,條件是「看到有蘋果」,目標對象「買蘋果」,數量「一個」;「如果看到有梨就買兩個」為任務二,條件是「看到有梨」,數量「兩個」,沒有給出新的目標對象。
因此按照程序邏輯來講,第二句話將繼承上一個目標對象,也就是「買蘋果」,所以這句話被看起來像職業病一樣的思維直接翻譯成了「如果看到有蘋果就買一個蘋果,如果看到有梨就買兩個蘋果。」
————————————————————
2、程序員看問題比一般人透徹。
這是職業特性導致的,因為電腦編程的嚴謹性,因此程序員面對一個問題、一個需要實現的目標或者一個bug時,他會思考更底層的問題,並且會習慣性採用歸納法來盡量避免以後可能遇到同樣的問題。
比如用輸入法輸入中文的詞句,有的時候打出了一串拼音,然後按下數字2選取發現不是自己想要的詞,然後發覺數字1對應的才是自己想要的,刪掉,重新輸入拼音,這次按下數字1的瞬間卻發現兩個詞的位置調換了,於是又刪掉重新鍵入,這次認真地看了看,終於選對了想要的詞的序號。
這個時候你會說,啊,我下次應該更小心一點,不要馬虎大意想當然,看清楚了再點。
程序員不這么想,他會想,導致這個問題的看來是輸入法的「詞語順序自動調整」功能,他會自動監測使用者輸入的各種詞語的頻率,來自動調整詞語的順序,底層代碼實現的邏輯很簡單,每個不同的詞對應一個從輸入法安裝到現在的輸入次數的計數器,直接按計數器排列順序就好了;也有的輸入法會監測你輸入後是否會將其刪掉,那麼這時候會被智能識別為打錯字,計數器不會加一。
然後再一思考,這種功能一般都是可以開關的,如果我想要靠記憶記住順序使用而不用輸入法自動調整的話,比如對漢字輸入的速度有一定要求需要考記憶記住漢字序號,我只需要進入輸入法設置將其關掉即可;如果我想要它幫助我調整詞句位置,但是又不需要頻繁地調整,那麼在我有工作需要的時候我會提前關掉,平時開啟即可;而如果我想單純依賴這一功能,那就不用管它,下次看清楚再選就好了。