22 歲開始學 C 語言和軟體開發,為時已晚?
大學電子信息專業,無奈懶惰貪玩,無所事事,導致什麼都沒學到,硬體不行,軟體不懂。找工作 30 天,也得到過幾個不錯的面試機會,但因為準備不足和肚中無貨,機會都沒有抓住。
這兩天比較好的公司都沒了,昨天面了一家視訊公司軟體測試,4.5K X 15,不包住,在上海!但還是簽了,怕到最後工作都沒有。
今天在網上搜索,發現網上一片聲音都在說:軟體測試沒技術含量,沒發展前途。
我這就慌了,發現人生已沒有前路。我打算學習 C語言,以後邊工作邊學習,先做到白盒測試,自動化性能測試,然後儘快轉到軟體開發。
但是我迷茫啊,我很害怕。我不知道怎麼開始,我懷疑自己沒有這方面的天賦,我怕付出很多沒有收穫,我怕自己不能堅持。我更怕為時已晚,沒有時間讓我去折騰。各位知友們,你們能指點指點我嗎?怎麼入門,怎麼加強,學習的進程等等。
中國反病毒界有一位傳奇人物。
他寫了一個殺毒軟體,裝在軟盤裡賣,一張軟盤賣280元。
為防止盜版,他對軟盤做了加密,一旦把這個殺毒軟體拷貝到別的軟盤,就無法執行。
但是他越是這樣用嚴密的方式加密,就越引來各界高手對解密的躍躍欲試,所以他不斷更改他的加密技術,從EXE加殼,到特殊磁軌寫入,再到軟碟片激光打孔,再到磁頭直接控制技術(讓磁頭運行在兩個磁軌中間)。
可以說,當時整個中國就是他一個人在跟加密解密界斗,而且從未落下風。
1997年,他身家過億,公司只有不到5個人。
他叫王江民,殘疾人,小學文化,前半生窮困潦倒。38歲開始學計算機,kv100殺毒軟體是他用彙編語言寫的。
你今年22歲,你問你現在學c語言算不算晚?
Dave Cutler像你這麼大的時候都還不會編程,40+的時候就寫出Windows NT了。
這是昨天師兄在地鐵上看見的,發給了我
以多年碼農的經驗告訴你。
除了幾門基礎課,操作系統,組成原理,數據結構,離散數學,演算法,之外。
工作中,差不多每兩三年,你用的東西就煥然一新了。
不光22歲要學,32,42,52,都要學。所以並不晚,因為別人也是在不斷的學習的。
我遇到不止一個同事快30了才開始學編程。以前做銷售,機械,生物,化學各行各業的都有。所以放心學吧。
學習一樣東西,最好的時間當然是幾年前,但是實際上最好的只有現在。
1967年,劍橋大學的Martin Richards對CPL語言進行了簡化,於是產生了BCPL(Basic Combined Programming Language)語言。
20世紀60年代,美國ATT公司貝爾實驗室(ATT Bell Laboratory)的研究員Ken Thompson閑來無事,手癢難耐,想玩一個他自己編的,模擬在太陽系航行的電子遊戲——Space Travel。他背著老闆,找到了台空閑的機器——PDP-7。但這台機器沒有操作系統,而遊戲必須使用操作系統的一些功能,於是他著手為PDP-7開發操作系統。後來,這個操作系統被命名為——UNIX。
1970年,美國貝爾實驗室的 Ken Thompson,以BCPL語言為基礎,設計出很簡單且很接近硬體的B語言(取BCPL的首字母)。並且他用B語言寫了第一個UNIX操作系統。
1971年,同樣酷愛Space Travel的Dennis M.Ritchie為了能早點兒玩上遊戲,加入了Thompson的開發項目,合作開發UNIX。他的主要工作是改造B語言,使其更成熟。
1972年,美國貝爾實驗室的 D.M.Ritchie 在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。
1973年初,C語言的主體完成。Thompson和Ritchie迫不及待地開始用它完全重寫了UNIX。此時,編程的樂趣使他們已經完全忘記了那個"Space Travel",一門心思地投入到了UNIX和C語言的開發中。隨著UNIX的發展,C語言自身也在不斷地完善。直到今天,各種版本的UNIX內核和周邊工具仍然使用C語言作為最主要的開發語言,其中還有不少繼承Thompson和Ritchie之手的代碼。
在開發中,他們還考慮把UNIX移植到其他類型的計算機上使用。C語言強大的移植性(Portability)在此顯現。機器語言和彙編語言都不具有移植性,為x86開發的程序,不可能在Alpha,SPARC和ARM等機器上運行。而C語言程序則可以使用在任意架構的處理器上,只要那種架構的處理器具有對應的C語言編譯器和庫,然後將C源代碼編譯、連接成目標二進位文件之後即可運行。
1977年,Dennis M.Ritchie發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。
C語言繼續發展,在1982年,很多有識之士和美國國家標準協會為了使這個語言健康地發展下去,決定成立C標準委員會,建立C語言的標準。委員會由硬體廠商,編譯器及其他軟體工具生產商,軟體設計師,顧問,學術界人士,C語言作者和應用程序員組成。1989年,ANSI發布了第一個完整的C語言標準——ANSI X3.159—1989,簡稱「C89」,不過人們也習慣稱其為「ANSI C」。C89在1990年被國際標準組織ISO(International Organization for Standardization)一字不改地採納,ISO官方給予的名稱為:ISO/IEC 9899,所以ISO/IEC9899: 1990也通常被簡稱為「C90」。1999年,在做了一些必要的修正和完善後,ISO發布了新的C語言標準,命名為ISO/IEC 9899:1999,簡稱「C99」。 在2011年12月8日,ISO又正式發布了新的標準,稱為ISO/IEC9899: 2011,簡稱為「C11」。
我們可以看到,即便是在高級語言中最穩定的C語言,從1967年至今,也發生了很多次的演變。
Cpp,java,C#,python,lua,php等等,越是高級語言,越是飛速的演變,幾年不學,很多東西就看不懂了。
24歲開始學的,之前真一點不會。現在勉強在大公司里打雜了=。=不知道什麼時候能到vc,空明這種程度lol
晉平公問於師曠曰:「吾年七十,欲學,恐已暮矣!」
師曠曰:「何不炳燭乎?」
平公曰:「安有為人臣而戲其君乎?」
師曠曰:「盲臣安敢戲其君乎?臣聞之:少而好學,如日出之陽;壯而好學,如日中之光;老而好學,如炳燭之明。炳燭之明,孰與昧行乎?」
何不秉燭游?
今年本科畢業的,考研跪了,也是四年沒怎麼學習,到處玩,各種玩,對人生職業沒有規劃,行業什麼的一點也不了解,沒有任何概念。三月這樣開始學java,之前是c的二級水平,基本等於不會寫代碼,找到的也都是測試,當時的心態和你一模一樣,也在知乎上到處這麼的看別人半路出家是怎麼找到開發的工作,問別人學了多久,覺得自己太浮躁了就還是開始動手做了。從四月到九月,做測試。上班在車上看文檔,看書,下班回來吃飯什麼弄到七點,然後就寫代碼到十二點,一點這樣,寫android入門快(考研都沒這麼,所以就跪了),搞這麼段時間,做了些個小應用,有一個稍微看得過去的拿去上架了,用這些東西去投簡歷,因為應屆畢業,企業看著有些學習能力還是願意給機會培養的,雖然大多都是外包公司,不過姿態放低點先有經驗再說。然後運氣不錯目前在一個創業公司當培訓生做android和cocos2d,當然能力只是從傻逼升級到了小白,所以只能做些簡單的工作,也在努力讓自己在試用期不被刷掉。
其實計劃是學習一年,心急了,就試著投簡歷了,抱著只要有能寫代碼的工作就去的心態去找,結果還是有人願給offer的,就選了個喜歡的。當時我上知乎就是到處找雞湯喝,為了證明我做的準備會達到我想要的目標,現在周圍同事都是些復旦,同濟,交大畢業的牛人,給了我自己很大的信心,因為能進入優秀的圈子,同時也是巨大的壓力。
分享我自己的經歷希望能給題主帶來一些安慰,消除些浮躁。寫出來也給我自己一些激勵。雖然我這些都算不上雞湯。
如果在這個人人都必須終生學習的時代還存有大學結束就算學成的觀念,那真的是一件可怕的事。
不知道題主的恐懼從何而來,如果你活到80歲,還有60年時間,這是什麼概念,就是從你嬰兒長成現在這樣還能重複三遍。如果因為覺得大學結束了,自己就過了學習階段而害怕學習的話,想想你老的時候,相當於用1957年的知識水平在今天使用,你想想不害怕麽。
我大學學的建築,畢業後學過日語(n2), 學過二胡,學過心理諮詢(二級),閑暇時候也會去學下茶道,雕刻巴拉巴拉一大堆無用的興趣,當然大多還是菜鳥。今年準備複習司考,非法本零基礎從頭來,我知道過的概率低,但是能學到些法律知識不也是好的。學習應該是一種生活態度,當然有人學習是圍繞工作技能,有計劃有安排,有人學習只是發展興趣,就像我有興趣的內容都和工作無關,但也願意去多看看,多試試,多接觸。其實哪怕你去鑽研lol怎麼上王者每天學習高手經驗苦練手速和技能,猜測對方套路,統籌隊伍戰術安排,我也覺得是一種很好學習,重要的是永遠不要害怕去學習。
題主你告訴我,C語言,半年夠不夠,不夠的話一年呢,再不夠兩年呢,當然如果再不夠……那……你放棄吧。晉平公問師曠,說:「我已經七十歲了,想要學習,但是恐怕已經晚了。」
師曠回答說:「為什麼不點上蠟燭呢?」
平公說:「哪有做臣子的和君主開玩笑的呢?」
師曠說:「我是一個雙目失明的人,怎敢戲弄君主。我曾聽說:少年的時候喜歡學習,就像初升的太陽一樣;中年的時候喜歡學習,就像正午的太陽一樣;晚年的時候喜歡學習,就像點蠟燭一樣明亮,點上蠟燭和暗中走路哪個好呢?」
平公說:「講得好啊!
最高學歷初二,干過建築工人,餐廳服務員,汽修,保安,等等,去年開始自學前端(他們說的最容易入門的編程活)。現在工作了,感覺還可以,比以前更有自信了。
四個月前從零開始接觸一個前端框架,react . 一個人獨立完成了一個公司的前後端分離後台管理項目,把自己認為不可能的事做到了,覺得不可能是因為四個月前我只有一個半月的工作經驗,而且是幾乎只寫過HTML和CSS。
另外我是83的,去年就是33歲沒什麼晚不晚,早不早,編程不是彈鋼琴或者練舞蹈,不需要抻手壓腿玩童子功,
別信那些雞湯故事,你就是你自己,認準了就一條道走下去,不確定就趕緊放棄吧。
不要急。慢慢來,我也是23歲才開始學編程的,先後學了C vc++ python javascript android。
付出總會有回報的。
你看我,現在已經在一家大的軟體公司做銷售了。
加油!
第一,如上面所說,種一棵樹最好的時間是10年前,其次是現在,所以肯定不晚。
第二,視頻處理可不是個簡單的活,恭喜你選擇了個好行業,既是機遇也是挑戰。機遇在於它將隨著平均帶寬的增長而增長,挑戰在於想精通實在太困難了,所以,如果不是十分有毅力,你可能要花費數十倍的代價,才能體驗別人分分鐘就能體驗到的編程的樂趣。
第三,要充分認識到功夫在詩外,會語言並不能說明任何事(雖然我還不會C++, +_+),你還要會演算法和數學(尤其在圖形圖像領域)、懂設計模式、系統架構、各種框架/庫/API、各種其他的編程技術(Windows系統編程、Linux系統編程、DX、OpenCL/CV/GL、各種GPU、ffmpeg、x264/5)、各種業務領域知識。構建這種系統的知識體系需要耗費相當多的精力。
第四,等你花了2年,快速地學完一圈,發現其實真沒寫幾行代碼,找不到遊刃有餘的感覺,所以,需要靜下心來慢慢coding,真正體會到了欲速則不達。
So,如果不想整這麼困難的,真不如找個web方向的(我沒有貶低的意思,任何方向做到優秀都很困難),需要的背景知識也不多(起碼離數學、高級演算法比較遠)。
上面的路線因為缺乏足夠的實戰機會,所以比較辛苦,解決問題的辦法,就是感覺達到了某一個level,就嘗試往開發跳,一旦跳成功,一個月寫的代碼,有可能超過你做測試1年的代碼量。量變會引起質變,高薪牛逼就不再遙不可及了~~
不要急嘛,你一急,就跟很多匿名用戶一樣,每天到知乎來混日子了。。
最好的時間是十年前,其次是現在。
題主,如果你很焦慮的話就去學C#或者java吧。學C越深入你越會發現自己無知,最後乾脆放棄吃這行飯了。學C#和java到某種程度上會讓你有種無所不能的感覺。而且入門比較簡單,資料也很豐富,去CSDN下傳播智客的教程看看,買大牛推薦的幾本經典書啃一啃,然後自己擼幾個demo。接著你會發現編程就這麼簡單嘛,最後臉不紅心不跳的在簡歷上寫上精通XX語言,去挑戰10000+以上的職位時被CTO虐成渣渣,痛定思痛後學c/c++語言和其相關的領域你就學得入巷了。
不晚!看這裡!!!計算機專業課程匯總。我23歲開始學的,現在還在學。
研究生2年開始真正寫代碼 畢業時拿了包括微軟在內很多offer 加油
多說一句 入門別去搞什麼c c++ 短期學不出來,建議一門高級語言比如java或者c# 加一門腳本語言,多做項目,多寫代碼。6個月後應該有小成。
真是煩透了最近看見的各種是不是已經晚了的問題
不晚啊,其實剛上大學的學生不過也就18,19歲而已,也剛剛開始接觸c語言。把自己看成3年的自己,從頭開始學就OK啦
推薦閱讀:
※工作後,你悟出什麼職場道理?
※年輕人如何在獨居時有效地保持自律?
※人究竟為什麼要努力?
※在你看來最完美的一生是什麼樣的?
※數學與應用數學就有哪些就業方向?如何準確進行職業規劃和職業定位?