天天看點

文科生成為技術經理,一共分幾步——《我的Java打怪日記》

文科生的困境和突破

我的外公是名高中校長,小時候他經常給我們表兄妹講《東遊記》,《隋唐英雄傳》和《三國演義》的故事,耳濡目染地就喜歡看課外書。那時候的課外書,經常被父母視為“不學無術”和“耽誤學業”,幸運的是我的媽媽很支援我,還希望我能成為一名作家。我的爸爸忙着做生意,也無暇顧及。

文科生成為技術經理,一共分幾步——《我的Java打怪日記》

得益于此,從國小開始,我的作文都常被老師在班裡傳閱,還獲得過我們市級的征文大賽一等獎。在高一的時候,組織幾十個學長學姐創立了《天邊外》的文學社。結果因為高二學習緊張,不要半年就夭折了。

雖然很喜歡文學,很喜歡看書帶來的充實和安逸,但也會“發個愁”--想長大了做什麼呢?作家?外交官?文學翻譯?老師?好像都可以,但好像專業性都不強。我們小縣城當時的高中,普遍重理輕文。單說我們那一屆,理科生1200多人,文科生隻有不到500。理科學不好的才會轉到文科生,文科在學不好就走體育生或者藝術生。

哈哈,現實如此,文科就是學校的二等公民。但是我自己,就是擋不住地喜歡,睡覺前必須看點書才會踏實。
文科生成為技術經理,一共分幾步——《我的Java打怪日記》

大學填報志願,也是全憑“一腔熱情”。那時候鳳凰衛視,和中央電視台的新聞深度報道非常多,而且也真真切切地解決了很多問題,幫助了那些“束手無策”的人。沖着對記者編輯的向往,也想做個“鐵肩擔道義,辣筆著文章”,我在5個聯考志願的第一專業都選了新聞。

文科生成為技術經理,一共分幾步——《我的Java打怪日記》

大一的時候,就迫不及待去了電視台實習,每天幫老師扛着幾十斤重的錄影機,而且重慶到處都是山路,自己還是屁颠屁颠的,覺得拿起錄影機和話筒就是很“莊嚴”的,回來飯都不吃趕緊寫稿子,生怕想好的寫作思路跑丢了。

大學畢業,因為新媒體的興起,電視台和紙媒在慢慢走下坡路,自己選擇去了鳳凰網。那時候,除了采訪任務,我們每周還要自己做個專題。而專題,是用當成最火的H5技術,編輯記者采訪獲得的文字,圖檔和音視訊整合而成,部門去隻有一個會H5的技術人雲,我們将近20個編輯,都要有求于他。

哈哈,開始有了想法,也猶豫,這應該很難吧。後來知道我們部門一個技術人員的工資,抵得上三個記者或編輯,更是對程式設計的含金量又向往又膽怯的。

當時就很刻意靠近那個技術小哥哥,每次午飯就會和他一起,不經意地問問他學習H5都需要知道些什麼,怎麼樣才能入門。

後來,父母提起要在我們省城買房,我不經意地看了下房價資訊,才知道“現實是如此的骨感”。我3個多個月的工資,才夠買房子的一平,而且還是在三環和四環交界處。那時候,對于采訪也時常會感到一些無奈和無力感,不到一年就沒了鬥志和信心。

索性牙一咬,去試試技術吧,“窮則獨善其身”。

文科生學習程式設計的優勢?

文科生的優勢在于寫作能力與人際溝通能力,如果再懂一些程式設計,在今天的職場上是普遍受歡迎的。

1. 寫作的套路和程式設計很像

一個文科生在寫作時,常常需要做下面幾個步驟

文科生成為技術經理,一共分幾步——《我的Java打怪日記》

1、審題。

審題就是分析文章的題目,弄清題目的意思。審題包括三方面内容(1)找出重點詞,有些題目,有一個關鍵詞,也叫“題眼”,題眼就是寫作的重點。如《一件難忘的事》中的“難忘”之類。(2)搞清寫作的範圍和要求,即時間、地點、人稱、數量、内容等限制範圍。(3)弄明白是寫人的,是記事的,還是狀物、寫景的。

2、确定中心。

記叙文總要表達一個思想,說明一個道理或表現某一方面的思想感情,這就是文章的中心。文章的中心要正确,對社會上正确的現象加以歌頌,錯誤的現象給予批評。中心正确,健康是文章的根本,對此必須首先要注意。中心還要求集中,一篇文章一般隻能有一個中心,各方面内容都要緊緊圍繞中心寫。

3、選擇材料。

作文的内容就是材料。寫作文要緊扣中心選擇材料,與中心關系不大的或無關的,要少選或不選。所選的材料還要真實、具體,真實就是不憑空編造,不誇大也不縮小。同時,還要注意材料的新穎、典型,不落俗套,要能夠清楚地反映人或事的特點。

4、安排結構。

所謂安排文章的結構,指的是文章的材料的組織安排。如先寫什麼,再寫什麼,最後寫什麼,以及怎樣開頭,結尾,過渡等。文章的材料,常用以下這些方法安排:(1)按事情發展的順序;(2)按時間順序;(3)按空間的順序;(4)按事物的幾個方面。

5、列提綱。

提綱,是結文章的總體設計,具體包括:(1)文章的題目;(2)中心思想;(3)寫作的順序;(4)詳寫,略寫的提示。提綱不能太詳細,也不能太簡單。

同理,程式設計,也就是把複雜的問題分解成一系列容易解決的小問題,然後把一個個小問題段單獨審視思考。然後,聚集幾個重要節點,形成解決思路;最後設計步驟,執行一步一步問題解決。

周末大掃除,為什麼你會感覺無從下手?因為你并不知道你要解決的問題是什麼。是以首先要明确問題——是垃圾太多需要扔掉,還是物品擺放不合理?垃圾太多應該怎麼辦,物品擺放不合理又該怎麼辦。你手頭有哪些工具可以用?你期待最後整理成什麼樣子? 明确問題之後,用計算機可以了解的語言把問題表述出來——程式設計思維就是培養你的這種能力。

其次,做事邏輯。初學者最容易犯的重大錯誤就是事先考慮不周、計劃不全,隻想到明顯的結果而沒有窮盡所有的可能性,結果留下隐患,即所謂bug。還有,這樣可以培養規範化編碼的習慣。比方說定義方法、變量,哪些字母大寫、哪些小寫,前後拼寫一緻,标點準确,格式對齊、縮進,還有句句留注釋,等等。例如DO,BO,DTO,抽象類,接口,枚舉的命名。

2. 溝通能力必不可可少

程式設計不是一個人的戰鬥。我們需要從産品或者項目經理中獲得需求,了解項目的關鍵點和注意事項,在開發中,我們可能還要和其他同僚協作建構同一個功能,開發結束還要協助測試。任何一個步驟都離不開溝通。

文科生如何能夠學好程式設計?

教育訓練機構針對學員自身的需求,開設有Java零基礎班

學Java并不難,難的是我們不去學習,不去用心。

0. 工欲善其事必先利其器

很多人學習程式設計,首先就被一大推的安裝環境和IDE工具吓住了。現在有很多線上代碼編輯器,可以幫助我們消除這個煩惱。不過深度學習程式設計,自己搭建一套開發環境是繞不過去的。

runoob:

https://c.runoob.com/compile/10
文科生成為技術經理,一共分幾步——《我的Java打怪日記》

jdoodle:

https://www.jdoodle.com/online-java-compiler
這個支援 Java 10,并且能夠儲存代碼,還支援導入外部庫。但有時候國内登不上。
文科生成為技術經理,一共分幾步——《我的Java打怪日記》

codingground:

https://www.tutorialspoint.com/compile_java8_online.php
這個網站比較美觀,也支援 java 10, 預設是運作 HelloWorld.class, 是以運作時需要對 javac 與 java 指令 專門設定一下,可以儲存代碼到 GitHub, dropbox 等,但不支援導入外部庫。

browxy:

http://www.beta.browxy.com/

它不僅運作速度快,而且還能儲存代碼,要是再美觀些就完美了。

新版本已經支援 java 10 了,可以用 lambda 表達式, 而且美觀多了,也能導入外部庫,但有大小限制。

還有手機版本。

katacoda:

https://www.katacoda.com/learn
線上學習Docker,K8s,Jenkins,機器學習等
文科生成為技術經理,一共分幾步——《我的Java打怪日記》

1. 要有信心

即使科班出身的程式員,在大學學習的程式設計知識也是個皮毛。不足為懼。

程式設計無非時用英語表達的數學邏輯,何況很多邏輯都很線程的架構。隻要不是深究算法,70%的開發崗位,熟練使用架構,了解原理,能夠在出現BUG時知道從哪裡定位解決就可以了。

2. 投入時間

“一萬小時定律”說,每天花4小時專做一件事,每周5天,堅持10年,有了這一萬小時,基本上你就可以成為某個領域的熟手。

要掌握某種知識,必要的甚至大量的時間投入是必不可少的。

3.親自動手

動手寫,犯錯、改正,再犯錯、再改正,這是學程式設計最重要的過程。

文科生别着急啃那些厚厚的教程,先看教學視訊。第一次沒看懂很正常,别着急。 “重複”、“過遍數”是開始學程式設計的不二法門。

學規範,糾細節,養成好習慣,終身受用。學外語,盡量不要看詞典,而是從上下文猜詞義,學到的才是活語言。學程式設計,恰恰相反,要随時查手冊,才能“被訓練”出規範。

即使視訊中老師講解的代碼很詳細,也要動手做一下。程式的世界,有時候,錯一點就千差萬别。 改參數,看效果,多用網絡搜尋,尋找更簡單的代碼實作。

4.用調試深度學習

一種是你的代碼寫的不對,要學會查錯,這就需要有較為系統的程式設計知識,而且要逐漸培養自己debug的習慣。每節課後都有一個專門的答疑時段,每次學生們都是排着隊來找老師debug。而他們所犯的錯誤,不是資料類型用錯了,就是少了個括号、标點寫成全角的了,等等。第一種debug,通過一段時間的系統學習和練習,基本上學生可以了解常見的錯誤提示資訊,并按圖索骥的找到出錯點。總體來說,這種debug相對容易解決。

第二種就比較麻煩。如果你是自己看書(或者視訊)學習用程式設計解決資料分析的特定問題,那麼,十有八九你的代碼跑出來的結果跟書(或者視訊)裡的不太一樣,而報錯則更是家常便飯。特别是當要調用别人寫的包時,由于包在不斷更新,很多書中的代碼已經被其他代碼替代,或者有了更符合特定程式(如R或者Python)的調用方法。要debug這類代碼,方法隻有兩個。第一,上網搜尋别人的問答,通常可用stack overflow(多數問答都隻能在英語世界中找到,是以,鍛煉英文的搜商也是很關鍵的~)。第二,如果搜尋不到,則要認真閱讀特定包的幫助文檔。通常,幫助文檔不會記錄每次更新代碼時,做的改動,但是,如果明白你用的代碼中每個參數的對應含義,那麼,通常可以從幫助文檔中找到蛛絲馬迹解決問題。

5. 根據就業崗位需要強化學習

我當時開始投遞技術履歷時,也很心虛,但我先看看自己所在城市他們都需要Java的哪些技能,然後我針對學習,針對一個問題展開全面了解。

Java學習路線

阿裡雲--Java學習路線

https://edu.aliyun.com/roadmap/java

黑馬--Java學習路線

https://zhuanlan.zhihu.com/p/115890802

B站--Java學習路線

https://www.bilibili.com/read/cv5216534/ https://mm.edrawsoft.cn/template/37212

文科生如何在技術面試中脫穎而出?

1.自信大方

隻要邀請你面試,證明你不需要特别在意自己是個文科生的身份。

當人事說你的技術很優秀,但因為你不是科班出身,故意降低你的薪酬,你可以“将”他一下--其他公司的offer我也收到了,比貴公司高2k, 不過更看好公司的發展,才來試一試,如果工資還這麼低,那我再考慮下吧。

2. 充分準備

根據面試崗位的技術要求,結合他的業務,思考他會重點文什麼?
  1. Redis面試會問什麼?
  2. Redis的叢集模式和持久化政策?
  3. Redis中的Key是如何被删除的
  4. Redis單線程模型效率為什麼這麼高,6.0為啥開始引入多線程
  5. 如何解決 Redis緩存雪崩和緩存穿透問題
  6. Redis熱點key的讀寫問題

文科生在技術部門何去何從

很多人錯把平台當作自己的價值,你在平台上,還有價值,但是放到社會上,卻沒有價值。我在鳳凰網做編輯時,就常常有這樣的誤區,以為自己認識了誰誰,哪個市長,哪個企業高管,但是對于人家呢,很難會記住你是誰,隻知道你是鳳凰網的。

是以,對于程式員,技術就是硬通貨。

技術發展

技術流:高并發/高部署/大資料量/圖形處理/算法研究等等,總之量級越大越好,場景越複雜越好,離前沿越近越好。跳到一個好點的一線平台,選擇一個領域往深了鑽,去市場上競争技術專家的崗位。

管理路徑

大部分程式員都是怎麼工作的?産品經理(或上司)規劃需求,交代任務,程式員撸碼,實作需求。

一個優秀的程式員,一定要有“面”的思維——全局視角。要總是盯着上司給你的“點”,點做的再好,改變不了你處于食物鍊底層的本質。要以全局的視角,技術的思路,考慮目前産品缺什麼,需要什麼,然後主動出擊。

管理流:團隊leader——業務線負責人——總監,老生常談的路線,就不班門弄斧了。如果能做到大廠某條業務線負責人/初創副總監啥的,表現就算是十分優秀。

身體第一位

從身體的角度來說,30歲之前你找病,30歲之後病找你。

為什麼很多中年人開始注意養生了,要早睡,要清淡,要喝枸杞?

不是他們樂意,也不是喜歡養生的小夥子變老了,是身體真不行了啊。

做點副業,多線收入

文科生是重要的内容創作者,在這個内容為王的時候,有太多文科生可以做的事情了!

例如:線上敲代碼、CSDN付費專欄,直播沒準也是,哈哈哈。

學會去帶新人,培養自己的團隊

這個其實很重要,你對新人怎麼樣,也代表着新人之一會對你怎麼樣。

理論上來說,我們不求任何回報,但是如果你有一天自己去了一家陌生的公司,架構,流程,氛圍都是陌生的,你難道還要從頭開始招聘麼。

不是這樣的。大部分都是找自己的老部下。

不要因為現在的工作環境穩定,就忽視了以後會有這種可能性發生。

無論到什麼地方,隻要資源到位,你可以快速凝聚出一個有戰鬥力的公司,這都是你的能力。

這些是需要緩慢培養,至少三到五年的時間。

不要怕他們犯錯,不犯錯誤是不會成長的,你就是那個兜底的。