以我自身經從來看,有以下幾點感觸?html
(1)全面發展;前端
(2)施展的平臺的機會比較大;mysql
(3)加班的頻率;面試
(4)跟領導的關係;sql
(5)與同事的關係;shell
(6)自覺性;數據庫
1、全面發展tomcat
咱們公司加上經理常在的也就是6我的。安卓兩個,Java開發三個。人少天然就要多個方面用。性能優化
好比以上家公司爲例,每當接到一個新的單子,咱們老闆都會派遣對應的項目實施人員去跟客戶交互,通常就是跟客戶聊聊需求之類的,而後整理成一個需求文檔,固然了,在此以前老闆會跟這個客戶談價格,這個價格分爲兩個方面,一個是隻賣服務不賣源碼,另外一個是源碼+服務一塊兒賣。這也是辦公自動化軟件公司比較廣泛的兩套營銷策略吧。話有些說偏了。而今在這家創業公司,我如今所處的這家創業公司主要是作共享經濟方面的,好比共享車、共享洗浴等等諸如的。能夠說是作本身的產品。作本身的產品有一種歸屬感,上家公司給個人感受雖然說是作辦公自動化,可是在我看來跟外包沒有什麼區別,只不過至關於專注性型外包(專作辦公方面的)前端框架
在這家創業公司,我作過可行性方案設計,以個人可行性方案設計,因爲咱們是本身作本身的產品,通常可行性有這麼幾個考量?
第1、技術可行性;
第2、成本可行性;
拿技術可行性來講,主要有這麼幾個考慮?
(1)成員熟悉度(以Java爲例,咱們主要用SSM框架,沒有用SpringBoot或者SpringCloud,由於咱們組成員廣泛對這個框架很是熟悉);
(2)可靠性(好比Spring全家桶就很可靠);
(3)文檔豐富性(就是若是出現什麼問題,能夠快速在現有的搜索引擎當中搜索獲取對應的解決方式);
拿成本可行性來講,主要有這麼幾個考慮?
(1)時間成本;
(2)技術成本;
(3)人員成本;
(1)時間成本
時間成本主要指的是項目的開發週期,項目的開發週期取決於項目的複雜度和需求變動度,複雜度高變動度高,那麼延期是必然的,固然了也能夠是非必然的,能夠用加班來達到按時交互的目的或者是一些強有力的手段。
(2)技術成本
技術成本有這麼幾個方面?
a.技術的實現成本(效率和時間);
b.服務器的成本(購買服務器);
(3)人員成本
a.五險一金;
b.工資;
關於全面發展,進入這家公司我不只僅是一個後臺開發人員,並且也是前端開發+運維+測試+DBA+架構(兼職)+技術支持(主要是安裝設備+調試設備)+產品設計等。
能力雖然是獲得全面的鍛鍊,可是除了後臺方面相對過硬,其餘基本都是淺嘗輒止,能夠理解爲都不夠深刻。
好比運維方面,我僅僅只是知道對tomcat、mysql如何調優,以及Linux常見的性能測試命令(free、top等)和其餘的經常使用命令(內存、CPU、線程、管理用戶等)及其一些經常使用的shell腳本(好比部署、備份數據庫、郵件告警等)。
好比前端開發,我除了比較熟悉HTML+CSS+JS(多虧曾經在學校的時候手動敲代碼寫了十幾個網頁,所以基礎仍是比較好)以外僅僅只是對jQuery+BootStrap+layui+Vue.js等前端框架比較熟悉,看了API知道怎麼用和異步交互的方式,及其一些前端性能優化方面的,對於如今的服務端的Node.js僅僅只是停留在簡單使用和環境搭建上面。
好比測試,除了很是簡單的功能性測試以外,也就是用Jmeter作一些tomcat、mysql等性能測試(壓力測試),還有就是開發經常使用的單元測試,至於網站的性能測試我是直接用國外網站測試的,能夠參考個人這篇文章:網站在線性能測試分享。
好比DBA,除了受權分配對應的用戶對數據庫的權限以外,SQL能力相對較好(這也是一直以來使用MyBatis的緣由之一)和一些簡單調優及索引方面的等。
好比架構,這裏的架構職責有兩個方面,一個是技術架構,好比制定開發的規範,使用什麼後臺框架(SSM仍是SpringBoot),採用MySQL仍是Oracle,須要使用消息隊列嗎,或者是前端指定要什麼框架(Metronic仍是Vue或是EasyUI)、數據庫的設計、究竟採用單體仍是微服務或是是單體式業務拆分方式等;另外一個就是業務方面的,好比分析業務需求、概括整理、編寫概要文檔、編寫詳細文檔和擴展業務等。
好比技術支持,好比配置路由器(由於門鎖須要鏈接這個路由來達到通訊的目的)等。
好比產品設計,前端方面的話,手動畫設計圖,大概是怎麼樣的(頁面的佈局之類的)和一些宣傳動畫的製做(用萬彩動畫大師製做產品宣傳視頻之類的)。
其實,大概看了看,感受和一些外包公司的開發人員職責沒有什麼不一樣(由於有一些外包公司,也是一人身兼多個崗位)。固然了,好處也是有的,除了我的的學習能力獲得提高以外,還有就是對於業務方面及其整個項目環節十分清楚,利於業務積累和技術積累吧。
2、施展的平臺的機會比較大
施展的平臺的機會比較大,爲何要這麼說呢?
第1、你能夠成爲規則的指定者;
第2、你能夠嘗試引用新的技術(藉此能夠學習,可是前提是你要扛得住風險和壓力(遇到問題臨時解決不了怎麼辦));
1.規則的制定者
(1)編碼規範,我能夠大致上參考Java開發手冊,而後在這個基礎上從新一些規範或者是守則等等,固然了,團隊成員雖然很少,可是因爲每一個的習慣不同,因此仍是須要在商議一下。
(2)創建代碼Review的制度,有些人或許會問,就三個Java開發還須要代碼審覈嗎?我給那些有這個見解的朋友的回答是:很是有必要。
首先說說代碼Review的好處,好處不少,我這邊只講幾個?
a.減小Bug率(知道有人會審覈本身的代碼,代碼會寫的嚴謹點,好比在學校的時候,老師沒檢查做業的時候,不寫或者寫的亂七八糟敷衍了事,當老師要檢查做業並要求卷面整潔,哪怕你寫的不那麼整潔,可是至少比你以前敷衍了事或者寫的亂七八糟要好的多;
b.提升代碼質量(人都是有尊嚴的,碼農也不例外,看到別人的代碼質量很好,本身的不好,不免會內心不爽,因而追趕對方,想要比對方更好,我以爲在團隊中這種良性競爭仍是好的,這個代碼質量的衡量指標,有這麼幾個方面,第1、看起來清楚整潔;第2、沒有冗餘重複的代碼塊。);
c.提升開發人員的責任感,有人說,項目bug一大堆很大緣由是由於開發人員致使的,由於不負責任,完成任務就好,至於bug,管他三七二十一(實際上,從某個角度看,這也是沒有辦法的事情,由於若是不把任務完成的話,面臨的就是項目經理的直接斥罵或者是其餘一些成員的歧視或者是幸災樂禍。之因此代碼review能提升開發人員的責任感,一句話,沒有對比就沒有傷害,看到人家的比較本身好,天然內心嫉妒,這是人性的體現,包括我本身也有這樣的心理。看到別人的代碼質量好(即實現功能又美觀),本身慢慢爭取超過他或者是向他請教,我想一家公司的開發團隊若是能有這樣的氛圍,那麼軟件的質量將會很是好的,可是就中國的這個大環境而言,中小公司對於代碼Review並非特別熱衷,由於項目經理或者是項目組長以爲人少不必屢次一舉;
d.熟悉彼此的代碼,防止由於某人由於有事情須要請假,萬一他的代碼上線測試的時候有問題,須要改bug時,要麼就是等他到時候上班的時候改,要麼是本身硬着頭皮看他的代碼思路邏輯來改(固然了,若是他的代碼寫的優雅美觀、邏輯清晰,那但是一件很是棒的事情,若是反之,亂七八糟,你將會懷疑人生),同時也在必定程度上,防止當這我的離職後,他負責的模塊沒人熟悉,固然了,也許會有人說,通常開發人員在提交離職申請書,都會有一個過渡期,讓交接人員對接熟悉他的代碼,可是若是有一個像淘寶、支付寶等這樣的大項目呢或者是這個公司有不少業務,每一個人負責至少二三十個模塊等之類的,或許有人說,領導會考慮到這一點,讓那我的離職延期直到交接所有後才批,可是現實是有的人直接會說,我半個月後就走,你必須給我批或者是你明天就要走或者下週,請問老闆又能怎麼辦呢?因此說,從長遠的角度看,代碼Review就是爲了防止這種狀況出現,好比吳軍先生曾經在他的一篇文章中,這樣說過,「美國頂級的軟件公司,開發項目歷來不會由於一我的離開而進度受阻,你會發現有些人度假一週,整個項目仍是在往前進行。可是中國不少大公司,你們得一塊兒開發,任務沒完成,經理不批准任何人的休假。這是開發管理水平不到位所致。」
2.引用新的技術,提升本身的學習能力
好比我當初以爲MyBatis很差用,因而便引用了一個開源項目MyBatis-Plus,當初用的時候,遇到不少困難,可是通過一段時間的使用,發現對它是愈來愈瞭解和熟悉了,包括它所出現的大大小小問題,我都能快速地解決,同時該技術對於咱們團隊而言,學習成本很是低,由於只要用MyBatis的使用經驗,不須要一個小時就能學會怎麼使用了。
固然了,並不表明引用新的技術就能提升本身的學習能力,引用新的技術,只能說明你的學習適應能力很強。我看了很多想guns、renren-security等這樣的開源項目,發現它們的共同點其實就是我們原有的那些框架的衍生或者強化,就如MyBatis-Plus本質上仍是MyBatis,只不過作了一些強化罷了。
3、加班的頻率
說到加班,記得剛剛進入這家公司的時候,剛開始第一個月基本是有雙休的,可是第一個月後,爲了完成老闆的任務,基本就是週週六。天天也就是9點對8點,有的時候回來還得加會班完成工做任務。這個加班我仍是可以理解的,創業之初,沒有一個相對成型的產品,老闆去吹牛拉投資也很差拉啊。
後來有一個階段加了會班,是由於一個展會上須要展現咱們的產品,爲了保證產品在展會上不會出故障,咱們那幾周拼命調試改bug。
除了這個階段外,還有一個階段加班比較多,是由於咱們團隊成員(包括我在內)的緣由,代碼寫的不夠好,當初遺留的問題太多。
一般狀況下,只要你工做足夠認真負責,平時花點時間鞏固下基礎或者是接觸一些新的技術,或者是看其餘的書籍擴展擴展視野,提升本身的見識及其溝通能力,通常的話,是不用加班的。固然了,有一種狀況除外,那就是公司團隊人太少了,可是生意太好,一單又一單,這就是沒有辦法的事情了。
4、跟領導的關係
領導跟我是老鄉,都是一個地方的人,我以爲,也許是由於老鄉的緣故,感受比較親切,以爲相處也是蠻不錯的。另外咱們領導奉行的是「無爲而治」。這個「無爲而治」,並非說無論咱們和聽任自如,而是指給咱們足夠的自由空間,任咱們發揮,固然了,還有一個硬指標,那就是每週工做任務不得低於十項。
5、與同事的關係
公司人少,天然一些勾心鬥角的事情是沒有的,可是吵架仍是有的,通常吵架都是由於業務方面的緣故,每一個人理解不同吧,好比你上午跟我要改這個功能和新增另外幾個功能,而後我跟你確認兩到三次後,你說沒有問題,那我開始弄,弄完後,你卻找我,說仍是改成原來的吧。我想換作任何一我的,都會十分的生氣。
除此以外,以爲團隊成員仍是蠻融洽的,沒有必要爲了勾心鬥角而花費沒必要要的心力。
6、自覺性
咱們領導沒有對咱們的電腦實現什麼的監控之類的,同時,也沒有根據代碼提交的頻率或者是功能的新增、bug的修改、功能的優化等指標來衡量咱們的工做指標是否完成。
想偷懶的話,有一大把機會偷懶。可是我以爲沒有這個必要。就比如南郭先生吹竽的故事那樣,以前能夠混在其中投機取巧,以後,想投機取巧都沒有機會了。
我以爲咱們開發人員對於我的的約束很是重要,確實有些公司對於員工的管理仍是比較鬆懈的,可是有的員工卻藉此機會偷懶。
小結:
今天主要圍繞全面發展、施展的平臺的機會比較大、加班的頻率、跟領導的關係、與同事的關係、自覺性等,闡述了我在創業公司的感觸。固然了,感觸遠遠不僅這麼幾個而已,還有不少,以上的幾個都是相對典型的。但願能給你們有所幫助。
最後來個問題解答:
有人問我:在大公司好仍是小公司好?
個人回答是:能去大公司則去大公司,特別是對於應屆生小夥伴們而言,大公司各方面條件都比小公司要好,至少大公司的培養人才機制仍是很完善的,去大公司從實習到工做與小公司相比不會太累。
有人問:大公司分不少種,有像軟通動力或者是中軟國際這樣的外包公司,也有像百度騰訊這樣的公司,也許規模沒有它們這麼大。那麼我該去哪一個公司?
個人回答是:前提是你的面試經過拿到offer,我以爲你仍是選擇那些有自主產品的公司,緣由是利於業務積累。
有人問:若是我沒有進入大公司,卻進入了一家小公司怎麼辦?
個人回答是:仍是那句話,選擇有自主產品的公司,固然了,若是你以爲本身編碼能力不行的話,能夠去外包鍛鍊鍛鍊一年左右或者兩年。作過的項目足夠多,編碼能力天然能上來。
還有人問:萬一找不到工做怎麼辦?
個人回答是:若是是由於能力不行的話,儘可能一方面花點時間提升自我,臨時抱佛腳總比每天打遊戲要好,或者是你的眼光過高忽略了本身的實際能力,建議放低本身的姿式,不要眼高手低,要實事求是。
最後,給應屆生朋友們幾點建議?
1.離畢業越近的時候,不要過於恐慌,儘管IT這一行也能夠說是狼多肉少,可是與其恐懼慌忙不如腳踏實地的多鑽研鑽研提高自我;
2.找到工做後,特別是對於第一份工做,特別是那些學的不是特別好的,建議,只要工資能解決溫飽就行,其餘以積累爲主,在這家公司儘可能待長一點,能夠是一年也能夠是兩年,我相信只要你足夠踏實努力,領導絕對會給你漲工資的;
3.那些一時沒有找到工做的朋友和老是面試碰壁的朋友們,大家千萬不能放棄,特別是老是面試碰壁的朋友們,大家必定要多多總結面試的經驗,不只僅要從面試官的看,還要想一想本身的不足之處;
4.有很多沒有良知的培訓機構打着招聘的幌子,忽悠應屆生來培訓,建議應屆生朋友們,要放亮本身的眼睛,特別對於那些寫着致力於在IT界發展或者是對於應屆生工資特別高(技術要求不高)的,要特別注意,最好仍是百度或者其餘途徑搜索一下,看是否是培訓機構之類的,或者是幾個好哥們一塊兒面試共享,看那些是培訓機構之類,這樣避免去浪費沒必要要的時間;
因爲我本身工做年限不是特別長,給工做年限三年之內的小夥伴們的建議是:
1.專一於技能的提高,不斷學習;
2.專一於業務的積累,提高本身的業務理解能力;
3.博覽羣書,提升見識;
4.虛心而不自大,人外有人,山外有山;
5.不要過於安逸(當工做一年或者兩年後,你會發現工做上基本都能搞定,因而就顯得懶惰和不思進取了,有些時候我以爲本身都有點開始安逸了);
6.多運動,跑跑步(有氧運動)或者是打打羽毛球(防止頸椎病),閒暇時,多走走,去公園走走,哪怕陪陪女友逛街也行,至少走也是一種運動方式;