喜歡計算機,喜歡編程,以後想從事計算機方面的工作,有個方向卻不知道如何規劃?

各位好

本人大三

讀的是自動化專業

經過兩年多的學習發現自己喜歡編程

喜歡通過編程創造或改變某些東西

自學了C.C++.Python

還有一點數據結構

用python寫過小遊戲,簡單的爬蟲

以後想找一份計算機的工作

對軟體開發 手機應用比較感興趣

但我知道這樣是遠遠不夠的

學的都是很基礎的東西

更沒有系統地學計算機

大三了

總覺得自己一事無成

想努力學好計算機,但不知該怎麼學

確切地說

是有個方向 但不知具體怎麼走下去

是考研?考個計算機專業,系統學一遍,再出來工作?

還是通過一年半的時間自學一些技能,出來找個工作,通過工作不斷學習,鍛煉自己?

我不想走一步算一步,所以很迷茫,想有一個具體的方向,一個具體的規劃,一份堅持的心走接下來的路,讓自己更上一層樓。

想聽聽知乎上各位的看法

或者大家有什麼經歷

在此分享

謝謝各位了!


瀉藥。

這個問題有點大,我的工作年限也不適合給出這樣的幫助,這裡說一點自己的看法供大家交流心得。模塊思想是程序開發中最重要的思路之一,如果泛化到職業規劃,應該一樣適用:這裡我分為「職能定位」、「技術背景」、「業務興趣」、「未來發展」四個部分講。

職能定位

這個說白了就是工種,一般的開發團隊都是由這些人構成:

  1. 開發師(包括開發經理,經常開發經理也就是PM,升級線路國內和國外兩種方式,但是換湯不換藥,原則性內容沒什麼不同);
  2. 需求分析師(主要工作是反饋公司業務需要、將業務上的邏輯轉化成ER圖、流程圖之類技術人員便於理解的邏輯視圖——無智力明顯缺陷的程序猿常常不需要——這個工種最大的特點是和開發技術本身沒有什麼關係,本身不寫代碼,但是通常也是單元測試、集成測試的兼職測試員);
  3. 項目經理PM(這裡單獨拿出是因為嚴格意義的團隊,PM不是一個開發人員,而是一個類似進度觀察員的角色,目的是把項目組的人力物力資源調配好,在國外技術成熟的團隊比如Career Builder、Linkin之類,PM的職位和薪金常常不會比普通開發人員高,這一點和國內的團隊有本質區別,國內的PM是真的「經理」,國外只是「經理人」,是不一樣的);

  4. Help Desk(這個說得直白點小公司里就是修電腦搞重裝的,而大公司就不同了。一般是各種安全軟體、許可權管理的admin,但是從前景來說發展坡度實在太平緩,不是很適合剛畢業的計算機專業科班出生——當然什麼也不會的上課老是睡覺的「特困生」還是可以去混飯的);
  5. (更新)集成測試(和需求分析師分管的測試不同,這個職能是專業測試,每一個功能點改動都要寫測試用例——業內也寫作「測試用力」——一般工作內容就是圍繞改動點測,同時還要測試系統全流程是不是有阻斷、數據錯誤、非用戶性提示異常拋出等等等等的檢查,一般大系統都是外包出去這部分工作。但是這一部分人斷層嚴重,主要是測試工作並不十分仰賴技術知識,求得更多是個仔細認真,但是很多嚴重的生產事故大多是需要有開發經驗的人才能測出來,不懂技術的集成測試比較缺乏這方面素質。我之前項目組有一位前輩就說過「好的測試必須是從開發出去」這樣的話,雖然有些絕對,但是反映了一定的開發工作現實。這個工作建議計算機專業學生有了一定的項目開發實踐之後再跳槽,嚴格來說這個工作要有效率,是需要全局觀比較好,而不是盯著所有環節都去測試);
  6. 運行維護支持(從小6開始,就是電信電子專業同學的福音,運行維護通常已經不是開發的測試環境了,而是到了生產。這個工作需要良好的行業背景知識,對電子行業本專業的要求並不算很高,主要是將用戶體驗和反饋的問題進行驗證分類,確定配置問題、網路問題、設備問題、bug,並通知對應的部門和人員解決問題);
  7. 變更調度(技術崗位,有同學做這個,所以略知一二。一個大的系統往往伴隨著巨量的變更需求,比如資料庫地址遷移、環境資料庫切換之類的,生產環境的資料庫不是隨便一個阿貓阿狗說句話就能動的,因此這個工種就是審核這類需要保障變更之後系統還是能正常運行);
  8. 資料庫(水巨深,絕對有前景的工種,入門坎很高,目前的技術背景還不可能有不要資料庫的系統,重要性不言而喻,這個部分單獨展開也是很大的一個話題,還是請搜索論壇的一些博客更好)
  9. 基礎設施運營(同樣和DB一樣稀缺,但是這一職能面向自動化專業的更多一些,因為對設備的知識要求多於對系統業務的知識要求,推薦給外地在大城市工作的畢業生,因為這個工作一般在郊區地帶,薪金比較高、加班強度也大,但是郊區帶來的生活成本不高,公司也一般都解決吃住問題,十年內攢下的積蓄相當可觀)。

技術背景

篇幅限制,我就粗粗說一下開發的技術背景。開發的技術背景一般認為分為:前端和後台,美工其實是專門的一類,不屬於計算機專業科班培養的範疇,不是說一定不能從事,但是轉專業不在本題討論範圍內,故不展開。

放兩張圖就很直觀了,有興趣的請自行谷歌有關技術。

前端(這裡就截了javascript和CSS,這兩個也常用,實際上入門必須的還有HTML和基礎的協議知識——參考計算機網路-同濟大學謝希仁版):

後台編程語言:(不管你暈不暈,反正我暈)

業務興趣

一句話,你是不是喜歡編程。互聯網公司都是植根業務存在的。如果對編程不是很熱心也是能在互聯網企業做得很好,我之前的項目組有一個做需求的妹子就是不會寫代碼,但是業務素養很高。而且離開開發工作,也有相當多的支持工作是和編程無關但是和互聯網公司有關的,比如程序員的績效考核等。

如果是對技術有不同程度的興趣,那麼我建議理清自己的生活作息和精力分配能給技術研究和實踐留多大的空間,畢竟學習新技術是需要在工作之餘花費額外的休息時間的,這一點上我的建議是量入為出,根據自己的生活情況和個人意願,切記不要和其他大牛作對比,每個人不一樣,沒有可比性,比得過昨天的自己就是最好的。

未來發展

坦率說這一部分我可能要過幾年來談更好,因為我目前的行業深度是不夠的。但是可以肯定的是互聯網企業是一種趨勢,它不僅僅只是把業務放到了電腦上和彈性工作制這麼簡單,更多的是一種標準化、流程化的思考,要實現的其實就是所有步驟都是透明且有依據可循的工作模式。所以如果題主和艾特我的知友問我如何規劃職業,我的答案是多參與項目,找到一種全新的工作模式和做事思路,即便不是做開發,這種思路仍然是新潮流下的寵兒。

謝謝~

======================================================================

後續更新


我覺的題主需要的是做一些實際的工作來明確方向。

最推薦的途徑是實習。暑期實習馬上就要開始了,建議投一下。本科生實習的要求不會太高,基本只要編程基礎紮實,數據結構、演算法設計基礎好,稍微準備一下筆試面試,包裝一下做過的項目(不是說怎麼吹,而是琢磨回顧一下做過的項目,如何介紹給面試官,有什麼局限,有什麼優點,什麼地方能改進),難度不會太大。多投一些公司,大公司不行投小公司,小公司不行投創業公司。通過實習,你可以了解到計算機行業的運作模式和需要的技能。即使你選擇考研,實習的過程也是相當重要的。事實上,計算機作為一個技能型職業,一個研究生經歷對求職的幫助可能有限,往往是專於導師所在的研究方向,甚至可能和工業界相去甚遠。


夯實基礎

你現在大三,離畢業還有小兩年。在這段時間,你要補足計算機方面的基礎:計算機組成原理,計算機網路,數據結構與演算法,TCP/IP協議,HTTP協議,資料庫。

選擇兩門語言

選擇兩門主流的開發語言(C++,Java,C#,Objective-C,Python),多做一些小項目,熟悉語言,鍛煉技能。

參加實習

利用節假日期間,參加一些公司的假期實習。注意:選好實習項目最關鍵,選擇標準(因為實際情況會很複雜,所以說個簡單的)是項目用戶量越大越好。

上面是我的一點感想,希望對你有所幫助!

---------------------------------------------------------------------------

接提問者 @mpaul的一些疑問

1.我沒讀過研究生,就不評價考研這條路了

2.關於出來工作,聊一下自己的工作經歷

我我在大學裡沒好好學習,畢業時兩眼一抹黑,專業知識轉眼就還給老師了!

因為找實習單位找得較晚,事前也沒什麼準備!過完年返校之後,發現好多人都已經有實習單位了,慌忙之下隨便找了個!第一份工作是個實習職位,待了幾個月發現公司是草創期,我這剛畢業的都被當骨幹用,而且公司極不穩定,考慮到在這裡學不到什麼,就走了!

找第二份工作時,招聘旺季已過。由於沒有多少技術儲備,這次找工作找得很吃力,前後用了差不多兩個月的時間!找到這個工作時,我兜里只剩不到1000,離下個月交房租不到20天!這份工作,是在一個製造行業公司的IT部門維護他們的OA系統。在這裡,我終於為在大學裡欠下的債付出了代價,一個簡單的CRUD我搞了三天,部門例會被點名批評。當時感覺好尷尬,好丟人,也好擔心,怕自己撐不到試用期,就被辭退!後來努力地熟悉業務,鍛煉技術,終於自認能夠對得起那份工資了!我要感謝當時的前輩明哥,明哥脾氣好,也有耐心,那段時間從他那裡學到不少東西。

第二份工作我做了19個月,後來感覺技術實力有提高,也厭煩了當時工作的繁瑣。我在大學的時候的夢想就想做個技術專家,但是這份工作平時就是維護公司已經運行了11年的OA系統,所有的問題都已經有了成熟的解決方案,還要回答系統用戶諸多的細節問題!

決定換工作後,我先找好下家才辭職。當時覺得既然想往技術方向發展,就去專門的軟體開發公司!然後,我就去了一家軟體外包公司。仗著在第二份工作期間的一些積累,第三份工作很快就上手了。但是待久了,我發現自己一直在做重複地工作,再加上當時公司不景氣,我就決定再換一份工作!

考慮到自己年齡不小了,也有些工作經驗了,網上發布的互聯網從業者平均工資辣么高,我屬於嚴重被低估的人,都是現在的公司拖累了我!我決定這次找工作時,在原來的期望薪資基礎上再加30%。另外,我不想再去軟體外包公司,舉得這些公司沒什麼前(錢)途。我要去真正的互聯網公司,真正地參與一款產品的開發,這樣才能學到東西!

準備了不到一周,我就找第四份工作了!這次選的是招聘季,但是結果還是很狼狽,我終於知道自己落下了多少功課!面試的時候,問語言基礎知識,很多半生不熟,只知其然不知其所以然;問做過的項目,寥寥可數,而且被問到很深入的問題諸如並發,性能等時,只能偶爾回答一兩句;問演算法,不知道;問設計模式,不知道;問讀過幾本技術書籍,答曰沒有!

當時很懊悔,懊悔自己浪費了四年的時光。有一天接連被四個公司拒,我都想轉行了!但是,又能幹什麼呢!我就是一個普通人,除了開發還熟悉,其它都不懂。再說了,我也沒有那麼大的勇氣放棄現在熟悉的行業,去做其它的!

後來我一邊面試,一邊惡補自己的短板,終於再經歷了兩個月後,找到了人生中第四份工作,當然如我所願,是一家互聯網公司!

上面說了這麼多,我其實就想告訴你,基礎很重要!所以,抓住畢業前的小兩年時間,認準一個技術方向,好好努力,夯實基礎。你可能覺得,畢業之後再學也可以,但是你想一下,畢業之後,工作辣么忙,你有時間學習嗎?就算你有時間,但畢業之後可真的沒人管理你了,誘惑那麼多,你覺得你有那麼好的自制力嗎?

不虛度年華,做某時該做的事!

至於技術方向,我覺得你可以看一些互聯網年度薪資報告,找一個薪資又高你又喜歡的職位,然後再去招聘網上找這些職位的要求,你就知道怎麼做了!

PS:在大學裡,把終身大事也解決了吧!工作之後,你就見不到幾個女的了,就算見到幾個,狼多肉少,你想想吧.....


咳咳,還沒有畢業不知道工作是怎麼樣的。

關於你的疑惑,如果你想畢業直接工作的話,學習web開發吧,html+css+js+php+mysql+apache+其他相關知識。通過一年的自學,找到一份互聯網工作是沒有問題的,這也是很多不相干的的人進入互聯網行業最簡單的方式吧,而且也不需要很多的科班知識,但是也會讓你的天花板很低,到後來還是會很痛苦的補充關於計算機的基礎知識(取決於你自己的標準)。


我是在大三下學期的時候參加的培訓學的JAVA。現在在做開發。可以給你兩個建議:一個是如果你覺得自己的自制能力很高,可以通過視頻自學。如果自制能力差或者沒有頭緒可以找個靠譜的培訓學校系統的學習。


推薦閱讀:

你是怎樣從一個電腦發燒友變得對電腦配置很隨意的?
對於計算機學科的學習,你所理解的什麼是「內功」?作為初學者在平時如何去修鍊這種「內功」?
學習 C++ 需要什麼基礎?
假期里用電腦可以做什麼有意義的事?
pc雙屏有什麼玩法?

TAG:計算機 | 計算機科學 | 計算機專業 |