做軟體開發但是現在公司學不到技術性東西想跳,自己又技不如人怎麼辦?

剛畢業小菜鳥一枚,非計算機專業,現在在一個所謂的大公司做開發搞軟體,
崗位是做java開發的,但是本人沒開發過java經驗所以目前是做測試工作,
測試基本是功能測試,就別人開發完我們去跑一下看看有沒有問題,
天天做這些,都是業務性的東西,感覺學不到技術性的東西,
當然和自身也有關,因為沒啥特別精的技術,又沒開發經驗,非計算機專業自己半路學的,所以也做不了開發,
當初進公司也是指望大公司對技術要求不是很高,也會給機會培養人,但是進來後發現的確是很包容,但是自己基礎太差還是不行,
原本的想法是進大公司可以做個跳板,學點東西然後再跳,現在發現基本學不到技術性的東西,都是自己非工作時間學,所以很鬱悶,
總之,現在就是工作不累,自由時間很充足,但是在公司裡面是很少學到技術性東西,至少現在是,

所以問題是:

1.想跳,但是技術真的沒啥強項,而且現在換工作已經不算是應屆生了,別人都會看經驗、項目什麼的,我還是啥都沒有,怕到時候四處碰壁,連工作都找不到
2不跳,先做著,但是自己用空閑時間學一些東西,等到相關知識學過或者有所了解後再走;但是自己學和實際工作、項目差距還是很大,這也糾結

所以想請教各位,希望給點建議,都感覺迷茫了,謝謝


根據我的經驗,學習是自己的事情,別指望僱傭你的公司會安排組織你學習什麼的。我都是自己在業餘時間總結,學習的。都是和工作相關的一些知識和理論,自己很多時候也會思考,比如,為什麼這個項目做成了這樣,有什麼辦法改進。採用新的技術會怎麼樣?等等。

理論和實踐結合,才能讓你真的明白正確的做法到的是什麼。


1,目前工作的節奏是,基本上白天做業務,晚上研究業務之外的技術。一般是公司內部技術論壇中的文章,也有在知乎、網上看到的一些技術。
看樓主描述,時間較閑,可以嘗試這樣。甚至可以看看那些垂直招聘網站上對一年工作經驗的人的要求,多觀察一些,就能發現一些共同點,也大概會了解後來要學習研究的方向了。比如憑印象隨口一說,spring,iBATIS,分散式緩存Redis,資料庫設計mysql,集合/反射/泛型/IO等等。

2,跳槽中的項目開發經驗怎麼寫。
雖然你現在搬的是測試的活,但也是可以看到項目代碼的,對於業務情況,要跳出簡單的功能測試舒適區,爭取做到比開發還了解業務。然後對於一些簡單需求,結合源碼看看能否實現。
原項目代碼再爛,其實應該也會有一些模塊可以學習研究的。比如我們老系統中的秒殺設計、代碼分層思想、計算引擎等等,總有不少可以研究的點。爭取走之前吃透這一部分精華。

3,跳槽前持續的學習是肯定的。跳大公司的準備,跟應試差不多,準備簡歷,刷題等等,不是說啥不準備直接跳的。短則一兩個月,長則半年、一年,視目標高低不定。目前達不到要求說明目標平台要求比目前的高,不用擔心,好好努力腳踏實地地去準備即可。


題主,題主,給個位置,俺要說兩句。

俺工作也是搞Java開發的,大學瞎搞,從php寫到JSP寫到JS寫到Python,實習都沒人要,快畢業的時候前端找不到工作,某司的測試說俺基礎太差,兜兜轉轉最後去寫Java了。

恕俺直言,題主雖然掛著開發的名字,實際就是乾的測試,這和你的老闆有很大的關係,他都把你當測試用了,開發的職稱也是名存實亡了。

俺還是針對你的問題回答吧。

既然技術沒有什麼強項,不如先好好學習,可以嘗試性的投遞一些簡歷看看反饋,看看外面公司需要什麼樣的人,看看自己哪裡有欠缺,但是不用太花心思在這上面,俺覺得定時梳理一下自己的知識點改改簡歷,2-3個月投一次是可以的。

然後工作經驗,其實不是你工作了多久,而是你的工作能力以及在工作中的能力表現,比如很多人所謂的一年工作經驗就是半個月x24而已。

俺覺得你的工作實在無趣,以後跳槽可能都沒有什麼用。


俺覺得題主就是想要兩個東西:

一個是工作中發揮價值,或者讓自己的工作有價值,讓自己的工作經驗是有價值的或者是得到同事和上司的認可;

另一個是,自己想要變成獨當一面的工程師,學到技術性的東西。


俺針對題主想要東西,給出三個自我提升的建議:

1.機會是自己爭取的,俺有個同學(俺有個朋友系列),本來是干測試的,組裡缺開發資源,和老大溝通了一下,一拍即合,去干開發了,雖然只是開發內部使用的工具,但是俺上次和他吃頓飯,一直說遇到什麼bug怎麼處理,寫了幾個介面啥的,看著挺開心的。

俺覺得,乾的憋屈了,可以和上司溝通一下,能不能分一些簡單的開發工作一點點做起來,如果沒有機會的話,就把你平時的工作內容,比如測試別人的功能啊之類的,寫成自動化的小工具,爭取機會並且保持寫代碼的熱情,並且這樣你跳槽的時候,工作經驗也有可以談的東西。


2.學習基礎知識,就是用你的空閑時間學一些東西,俺覺得你既然不是科班出身,那麼打好基礎還是很重要的,一方面補全自己遺漏的知識,一方面消除自己的自卑心理,如果有興趣,俺可以再補充。


3.你也說了自己學的東西和實際工作、項目差距比較大,俺覺得你可以學一些和實際工作差距比較小的東西。

俺舉個例子,之前和同行聊天,問他「你們機器掛了怎麼辦?」「去機器上看日誌,最後打的日誌就是宕機的時間,然後看日誌找宕機的原因。」俺大驚,知乎要是這樣被動的掛了幾天才發現,估計公司都倒閉了。俺覺得你應該站在系統可用性、易用性、復用性的角度上多思考問題,做一些相關的開發,可能會增強你的工作能力,雖然這些看起來很像是吹牛逼,但是俺覺得,吹牛逼也不是壞事。


雖然很多人說工作就是糊口,但是俺覺得工作也是很有意思的事情,除了有時候會遇到一些噁心的事情。

然後希望題主能夠早日實現自己的目標,俺覺得半年就能有很大的進步,別忘了很多人的工作都是N*15days。

然後俺覺得,跳槽是早晚的事情,儘快行動吧。


2017/02/04 今天怎麼突然多了這麼多贊,是不是被那個大 V 臨幸了。說句時髦的話:知乎小透明受寵若驚啊。我改改錯別字。

----------原文分割線----------

你好,這裡有一碗雞湯不知當喂不當喂
個人成長與工作
-----------為了騙贊我複製一下原文吧-----------

其實12點不到就睡了,但是一直睡不著,又不想寫代碼,擔心一寫又到早上了。所以還是來寫寫雞湯吧。

從實習算起,參加工作也有三年了,對於工作與個人成長的關係也算是有自己的一點理解。恰好之前與人討論了一番,感覺值得梳理一下。

首先,我覺得工作是公事而個人的成長是私事,企業有義務幫助員工適應工作環境(對於實習生來說這包括必備的工作技能),但並不對員工的個人成長負有任何責任。所以,一般培訓一項是作為福利存在的。至於人才培養計劃之類的,那是企業在對人力資源的成本衡量後的結果。如果引進人才的成本比較低的話,我想沒有企業會花這筆錢。明確這一點之後,才明白為什麼渡過了最初期的適應階段之後會覺得自己不再長進了,因為一旦你可以勝任工作之後沒有人會再催著你學了;如果出現一項你無法勝任的工作,很多時候都是安排有能力的人去做。

從這裡也可以看出,為什麼說八點到十點的兩個小時,才決定了一個人發展:因為工作時間,企業對你的要求就是重複你已有的技能,而你卻想從中獲取新的技能,那可不是緣木求魚;只有工作後的自我學習,才是真正屬於自己的,習得新的技能的時間。如果用這些時間獲取了新的技能,而下次出現了需要該項技能的業務,那不就可以在其他人中脫穎而出了么。想像一下,一個流水線上的工人,如果在課後自學了機器的運行原理;在某次機器故障,所有人都無所適從的時候,試著解決了問題,你覺得老闆會不會考慮安排他去跟著老師傅學習機修?

當然,這種機會是可遇而不可求的,所以稱為機遇.而我們能做的是在做好準備的同時,讓這種機遇發生的可能性盡量提高一些。因此,學什麼就很重要。我的經驗是,去學和工作緊密相關的。聽起來很虛,但其實很簡單。比如我,並不是計算機科班出身,加入互聯網行業時基本是空白。在剛開始工作,學會了用框架提供的介面來增刪改查寫業務邏輯之後,已經滿足了工作的基本要求,似乎已經沒有什麼可學的了。只是那段時間正是對編程知識如饑似渴的時候,無意識地希望了解框架背後的原理,去真正的理解OOP、MVC、Restful這些高大上的名詞,也恰好遇到了一個好的老師耐心指導,雖然這些東西對於寫當時的業務邏輯其實並沒有什麼用(其實還是有點用的),但當新的產品計划出來,可以參與後端架構是我,而不是同期的其他人,我覺得還是有挺大關係的。

工作的內容是一個點,除了把這個點畫大,更可以做的是找到相關聯的點,把他們連起來——這是從開墾到跑馬圈地的變化。深化自己的已掌握的知識,讓點變成圓,可以有更長的邊界去連接更多的點。這樣能力才可以即保有深度,又擴張廣度。所以,我還是挺喜歡工作總結的,可以把工作內容這個點描述清楚,知道自己的邊界在哪裡,這樣才有的放矢。

總結起來,個人成長與工作的關係是一句雞湯的無比的話:從工作中來,到工作中去。


能糊口有空餘時間就抓緊時間學習


學生畢業進去社會第一條
忘記學生思維,再也不會有教學式學習發生了,只有自髮式學習


試試晚上11點之前睡覺,早上三四點鐘起床,起床之後就鑽研技術。我今年42歲都這樣做,你可能比我要年輕二十歲,沒有什麼事不可以的。這種作息時間是比較健康的。切忌熬夜,因為得不償失。這是起居方面。
然後你手機和電腦上都安裝一個番茄土豆,用來完成精確的自我管理以及進行成就的統計。也可以用一些類似功能的待辦事項軟體等等。這樣可以克服拖延症、避免過度疲勞、有效利用大腦、並實實在在地體會到成就感,有點像玩遊戲通關的感覺。
內容方面,找自己感興趣的技術來學習。當然有市場是最好了,不管學什麼能學有所用是最好的。最好是遵循循序漸進的原則,這樣時間利用方面是最有效率的,也不容易被無助的挫敗感打敗。學習難度控制在比自身技能高10%到20這樣一個水平,也就是說,只要稍微踮起腳尖或者稍微跳一下高就能夠得到,就像健身一樣,一點一點地提高難度。
然後就是持續的保持這樣的活力,持續幾天之後,你會發現這本身就是一件非常有樂趣的事情。
遇到問題當然是多搜索多知乎了,因為這個世界上有非常多的同類,同類當中又有非常多的前輩,前輩當中又有非常多的人樂於在幫助別人的同時提高自己,因為最好的學習方法就是輸出自己的知識和經驗。自己窮摸索是最費時費力的了,多嘗試多練習,然後遇到問題快速的找到解決問題的方法,並自己再進行嘗試和練習,於是能力就慢慢變成自己的了。
所以說現在這個時代是學習最好的時代,你要想的只是如何的充分利用它。
工具要找最順手最省時的,因為我們最大的成本其實是時間。比如上面這麼多文字,都是用訊飛輸入法語音輸入的。有了這種工具,我還會手寫,還會打拚音嗎?其他方面也是如此。
最好的方法,無非就是用最低的成本獲取最大的價值。
所以,偷偷地憋大招兒吧。


我來說一說 我的做法吧 ,我是做爬蟲的。 剛進新公司 3個月。 工作感覺非常簡單。
技術上沒有什麼提升 ,一直在吃老本,
此時發現 公司對於某個 地方要處理json 而且處理的 步驟非常繁瑣。 而且 是重複勞動。
於是 想辦法 寫出一個通用的 jsonUtil 一到要處理的時候就調用jsonUtil
此時發現 公司的 applicationContext.xml 無比混亂。
分層
改成 applicationContext-service.xml applicationContext-dao.xml 等
除此之外還有很多。
以前從沒有用過ssm 框架。 公司也沒有要求。 利用業餘時間 自學了 ssm 框架
接著整合上 緩存。
下一步目標是 利用爬蟲技術 抓小說網站的小說 ,把每一章節都存到mysql中。 目標是 百萬級別數據查詢, 假如非常慢的話 嘗試加索引。 另外 再加上 緩存。
後面的目標是 cdn nginx 等

所以,沒有事情 要找事情做。
先訂一個小目標。 寫一個小說網站。
然後 寫一個速度比較快的小說網站
接著 把mysql 升級改成 hdfs 存儲文件 等 這些 我工作中 都用不到。 可是 都會變成積累。不管你會不會跳槽。 以後總會越來越牛b的。 工作比較閑 是好事。


公司里你指望大牛帶你,那真的是希望渺茫。大家都有工作,幾乎不可能手把手教你。但你可以多看多聽多學。一開始肯定不懂,但是多接觸深入了解,時間長一些總是能領悟的。

我們老師曾說過一句話,我深以為然。計算機門檻低,但包括計算機的學生,聰明的3個月,再慢的一年也能上手。

說點兒實在的。程序去一行行讀,不懂自己先查。再不懂,帶著問題去問同事,好好說話,描述清楚你遇到什麼問題,看了哪些資料,網頁怎麼說的,嘗試了哪些方法,分別得到什麼結果。最後還是不行,所以請教。不要一問三不知,一副我就是什麼都不懂的樣子。這樣次數不用太多,回答問題的人就會不耐煩了。

靠自己學習領悟,靠谷歌/百度,靠stackoverflow,前提是你英文不錯。


工作的項目總會有諸多的限制,諸多的歷史包袱,導致整個項目做完都有一堆糟點。
那麼完全可以在平時做公司項目的時候,把腦袋裡蹦出的這些想法記下來,在業餘的時候,按照自己的想法做一遍。那麼你就會發現,那些地方為什麼當時的架構師要這麼設計,那些你想的太簡單了。
這樣重複幾次,一年下來5到6個項目,你完全可以突飛猛進了。
我現在工作的習慣:
項目的進度優先順序最高,在任何設計,開發,測試的時候,有想法記錄下來。
每個項目都建立兩個筆記,坑點和待研究問題。
坑點記錄的是項目中踩過的坑。待研究問題記錄的是你項目開發中的想法,那些你沒時間去驗證的問題。
後續項目完工有時間,或者業餘時間,把這兩個筆記翻出來,完成這些內容。
再後續就是准對個別點深入研究,寫一篇文章除了分享給大家。

以上是我做了10年as400之後,在去年轉行做了java之後開始實施的。


思而不學則殆


這個問題剛好可以來回答。

鄙人本科,實習和畢業都在一家初創公司工作。前期剛開始還能學習到自己不知道的技術和知識,但是到了後期就是搞網站介面測試,辦公室主機維修,平時接點小任務,比如給發布會寫個移動答題的頁面什麼的。其餘時間真的沒有成就感,感覺在墮落和荒廢自己。


因此。我是這麼做的。


1,白天時候有事兒就干,沒事兒就深入學習自己的技能。比如我是前端就去做後端。

2,總結自己的所學,用腦圖啊什麼的。做筆記也是可以的。或者可以在社區,論壇發布自己的動態,看看技術博文。

3,繼續拓展,學習輔助工具,不會git就去學。不會Photoshop就去學,不會angular,就去學。

4,下班之後,別人去電影去吃飯去約泡去找小姐「這個真的可以有」,你依然鑽研技術,比如資料庫,你會MySQL,那你就去要pgsql,如此。

5,如果還有時間,那就去學習英文和數學。畢業後,依然對外語念念不忘,每天聽聽VOA,聽聽NEC,都是挺有味道的。當然,繼續學習數學,真的很好。比如這次某寶的2億項目,全民參與,可以通過概率論算算嘛。

以上,手機碼字。


說下我的經歷吧。
去年三月的時候去盛大遊戲實習,現在看來當時水平真的菜,(覺得自己能被招應該是因為自己寫的項目正好是個遊戲小站而不是隨大流的xx管理系統xx電商),適應了工作環境後陷入了一個比較尷尬的局面,感覺自己學不到東西,不知道怎麼學,工作和學習的分配等等,幾個月後選擇了離職,挺捨不得的。(當然我的工作部分還是完成得很好的只是自己的學習管理上不好)
回校後邊準備期末考試,邊準備秋招。從頭到尾的把資料庫 數據結構 操作系統 計算機網路 設計模式 軟體工程等都過了一遍(這些學科有些學校有開設但是講得不多,可能只講到考試的部分),知識體系搭起來後感覺狀態很舒服。如果讓這個時候的我回到盛大我願意留下來的,因為我很清楚自己的學習狀況,能夠在工作之餘突擊自己的死角,找到業務中可能會遇到的知識提前去學習等等。

回過頭看題主的問題。我比較推薦留下來用工作之餘學習提高自己,特別是先搭出一個自己的知識體系,才知道哪些地方該去補。跳槽題主也說了只能社招了,裸辭也更加有風險,在家呆著容易失去工作的感覺。


跳槽


在公司里內部調動崗位,先學學開發知識,聯繫公司內部有關開發方面的經理,問他缺不缺人(開發崗位一般都是缺人的)。或者直接走公司內部招聘流程。


編程能力的提升應該在工作時間之外


想學計算機,正確的方法應該是按科班的課程安排,從基礎開始學習。在學習理論知識的同時,把實驗也要做好。


首先,樓主並不是計算機或者軟體背景出生的,這裡我很好奇為什麼你當初要去面試java開發。
java開發需要一定的計算機基礎,軟體思想,客觀來說如果光是工作業餘時間去學習,又沒人帶的話,很難學成(天才,非常有恆心的人除外)
你去了一家大公司,大公司包容性很強,我猜測可能是你入職之後發現你無法勝任開發工作,所以把你調去測試崗位。
嚴格來說目前業界測試崗位分為兩類,一類是單元測試,另外一類就是功能性測試。
前者需要書寫代碼,對程序各個模塊進行測試,後者就是不斷的點擊,看看是否會出現異常。
也有的公司會把讓開發者完成單元測試。
就你的描述來看,你從事的測試應該是第二種。
第二種測試往往跟業務緊密相連,而不跟代碼打交道,當然你就會覺得在技術層面,你在這家公司並沒有任何提升。

就目前的情況來說,我推薦首先嘗試跟你的領導商量,把你調去寫一些單元測試。這樣你就能接觸到實際的代碼,也能學習別人的代碼。非工作時間你繼續學習java ,努力讓自己成為一個java程序員

第二條路徑建議你轉向自學前端,工作可以不辭,開始學習前端。前端入門門檻比較低,學習曲線較為平緩,較為適合非計算機專業逐漸轉入計算機相關職業。就目前來說中高級的前端工程師薪資還是相當豐厚的。

不建議直接跳槽,可以考慮先做一些準備工作,把自己的技術水平提上來。
如果你決定自學,一定要堅持堅持再堅持。學習不能一朝一夕完成,相比之下,恆心更為重要


做不了開發。。。
那趕快學啊
測試並不是很簡單的
自動化測試用起來,理論書看起來
很多人都是覺得要坐在那裡等別人來教,事實上這是不可能的,講的不好聽一點,你都聽不懂,學一定是自己學的。


做測試也有世界級別的
也有天天人肉測試的

做開發有能寫v8
還很多麻團或bug製造者


推薦閱讀:

各種語言寫網路爬蟲有什麼優點缺點?
大文件傳輸主要技術瓶頸都有哪些?如何處理的?
HTTPS除了使用CA機構頒發的數字證書外,有沒有使用數字簽名技術驗證內容的完整性?
如何去分析開源的代碼,例如tomcat?

TAG:Web開發 | 程序員 | JavaScript | 甲骨文Oracle | Java |