文科生的困境和突破
我的外公是名高中校長,小時候他經常給我們表兄妹講《東遊記》,《隋唐英雄傳》和《三國演義》的故事,耳濡目染地就喜歡看課外書。那時候的課外書,經常被父母視為“不學無術”和“耽誤學業”,幸運的是我的媽媽很支持我,還希望我能成為一名作家。我的爸爸忙著做生意,也無暇顧及。
得益於此,從小學開始,我的作文都常被老師在班裡傳閱,還獲得過我們市級的徵文大賽一等獎。在高一的時候,組織幾十個學長學姐創立了《天邊外》的文學社。結果因為高二學習緊張,不要半年就夭折了。
雖然很喜歡文學,很喜歡看書帶來的充實和安逸,但也會“發個愁”--想長大了做什麼呢?作家?外交官?文學翻譯?老師?好像都可以,但好像專業性都不強。我們小縣城當時的高中,普遍重理輕文。單說我們那一屆,理科生1200多人,文科生只有不到500。理科學不好的才會轉到文科生,文科在學不好就走體育生或者藝術生。
哈哈,現實如此,文科就是學校的二等公民。但是我自己,就是擋不住地喜歡,睡覺前必須看點書才會踏實。
大學填報志願,也是全憑“一腔熱情”。那時候鳳凰衛視,和中央電視臺的新聞深度報道非常多,而且也真真切切地解決了很多問題,幫助了那些“束手無策”的人。衝著對記者編輯的嚮往,也想做個“鐵肩擔道義,辣筆著文章”,我在5個高考志願的第一專業都選了新聞。
大一的時候,就迫不及待去了電視臺實習,每天幫老師扛著幾十斤重的攝像機,而且重慶到處都是山路,自己還是屁顛屁顛的,覺得拿起攝像機和話筒就是很“莊嚴”的,回來飯都不吃趕緊寫稿子,生怕想好的寫作思路跑丟了。
大學畢業,因為新媒體的興起,電視臺和紙媒在慢慢走下坡路,自己選擇去了鳳凰網。那時候,除了採訪任務,我們每週還要自己做個專題。而專題,是用當成最火的H5技術,編輯記者採訪獲得的文字,圖片和音視頻整合而成,部門去只有一個會H5的技術人云,我們將近20個編輯,都要有求於他。
哈哈,開始有了想法,也猶豫,這應該很難吧。後來知道我們部門一個技術人員的工資,抵得上三個記者或編輯,更是對編程的含金量又嚮往又膽怯的。
當時就很刻意靠近那個技術小哥哥,每次午飯就會和他一起,不經意地問問他學習H5都需要知道些什麼,怎麼樣才能入門。
後來,父母提起要在我們省城買房,我不經意地看了下房價信息,才知道“現實是如此的骨感”。我3個多個月的工資,才夠買房子的一平,而且還是在三環和四環交界處。那時候,對於採訪也時常會感到一些無奈和無力感,不到一年就沒了鬥志和信心。
索性牙一咬,去試試技術吧,“窮則獨善其身”。
文科生學習編程的優勢?
文科生的優勢在於寫作能力與人際溝通能力,如果再懂一些編程,在今天的職場上是普遍受歡迎的。
1. 寫作的套路和編程很像
一個文科生在寫作時,常常需要做下面幾個步驟
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
jdoodle:https://www.jdoodle.com/online-java-compiler
這個支持 Java 10,並且能夠保存代碼,還支持導入外部庫。但有時候國內登不上。
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,機器學習等
1. 要有信心
即使科班出身的程序員,在大學學習的編程知識也是個皮毛。不足為懼。
編程無非時用英語表達的數學邏輯,何況很多邏輯都很線程的框架。只要不是深究算法,70%的開發崗位,熟練使用框架,瞭解原理,能夠在出現BUG時知道從哪裡定位解決就可以了。
2. 投入時間
“一萬小時定律”說,每天花4小時專做一件事,每週5天,堅持10年,有了這一萬小時,基本上你就可以成為某個領域的熟手。
要掌握某種知識,必要的甚至大量的時間投入是必不可少的。
3.親自動手
動手寫,犯錯、改正,再犯錯、再改正,這是學編程最重要的過程。
文科生彆著急啃那些厚厚的教程,先看教學視頻。第一次沒看懂很正常,彆著急。 “重複”、“過遍數”是開始學編程的不二法門。
學規範,糾細節,養成好習慣,終身受用。學外語,儘量不要看詞典,而是從上下文猜詞義,學到的才是活語言。學編程,恰恰相反,要隨時查手冊,才能“被訓練”出規範。
即使視頻中老師講解的代碼很詳細,也要動手做一下。程序的世界,有時候,錯一點就千差萬別。 改參數,看效果,多用網絡搜索,尋找更簡單的代碼實現。
4.用調試深度學習
一種是你的代碼寫的不對,要學會查錯,這就需要有較為系統的編程知識,而且要逐漸培養自己debug的習慣。每節課後都有一個專門的答疑時段,每次學生們都是排著隊來找老師debug。而他們所犯的錯誤,不是數據類型用錯了,就是少了個括號、標點寫成全角的了,等等。第一種debug,通過一段時間的系統學習和練習,基本上學生可以理解常見的錯誤提示信息,並按圖索驥的找到出錯點。總體來說,這種debug相對容易解決。
第二種就比較麻煩。如果你是自己看書(或者視頻)學習用編程解決數據分析的特定問題,那麼,十有八九你的代碼跑出來的結果跟書(或者視頻)裡的不太一樣,而報錯則更是家常便飯。特別是當要調用別人寫的包時,由於包在不斷更新,很多書中的代碼已經被其他代碼替代,或者有了更符合特定程序(如R或者Python)的調用方法。要debug這類代碼,方法只有兩個。第一,上網搜索別人的問答,通常可用stack overflow(多數問答都只能在英語世界中找到,所以,鍛鍊英文的搜商也是很關鍵的~)。第二,如果搜索不到,則要認真閱讀特定包的幫助文檔。通常,幫助文檔不會記錄每次更新代碼時,做的改動,但是,如果明白你用的代碼中每個參數的對應含義,那麼,通常可以從幫助文檔中找到蛛絲馬跡解決問題。
5. 根據就業崗位需要強化學習
我當時開始投遞技術簡歷時,也很心虛,但我先看看自己所在城市他們都需要Java的哪些技能,然後我針對學習,針對一個問題展開全面瞭解。
Java學習路線
阿里雲--Java學習路線
黑馬--Java學習路線
B站--Java學習路線
文科生如何在技術面試中脫穎而出?
1.自信大方
只要邀請你面試,證明你不需要特別在意自己是個文科生的身份。
當人事說你的技術很優秀,但因為你不是科班出身,故意降低你的薪酬,你可以“將”他一下--其他公司的offer我也收到了,比貴公司高2k, 不過更看好公司的發展,才來試一試,如果工資還這麼低,那我再考慮下吧。
2. 充分準備
根據面試崗位的技術要求,結合他的業務,思考他會重點文什麼?
- Redis面試會問什麼?
- Redis的集群模式和持久化策略?
- Redis中的Key是如何被刪除的
- Redis單線程模型效率為什麼這麼高,6.0為啥開始引入多線程
- 如何解決 Redis緩存雪崩和緩存穿透問題
- Redis熱點key的讀寫問題
文科生在技術部門何去何從
很多人錯把平臺當作自己的價值,你在平臺上,還有價值,但是放到社會上,卻沒有價值。我在鳳凰網做編輯時,就常常有這樣的誤區,以為自己認識了誰誰,哪個市長,哪個企業高管,但是對於人家呢,很難會記住你是誰,只知道你是鳳凰網的。
所以,對於程序員,技術就是硬通貨。
技術發展
技術流:高併發/高部署/大數據量/圖形處理/算法研究等等,總之量級越大越好,場景越複雜越好,離前沿越近越好。跳到一個好點的一線平臺,選擇一個領域往深了鑽,去市場上競爭技術專家的崗位。
管理路徑
大部分程序員都是怎麼工作的?產品經理(或領導)規劃需求,交代任務,程序員擼碼,實現需求。
一個優秀的程序員,一定要有“面”的思維——全局視角。要總是盯著領導給你的“點”,點做的再好,改變不了你處於食物鏈底層的本質。要以全局的視角,技術的思路,考慮當前產品缺什麼,需要什麼,然後主動出擊。
管理流:團隊leader——業務線負責人——總監,老生常談的路線,就不班門弄斧了。如果能做到大廠某條業務線負責人/初創副總監啥的,表現就算是十分優秀。
身體第一位
從身體的角度來說,30歲之前你找病,30歲之後病找你。
為什麼很多中年人開始注意養生了,要早睡,要清淡,要喝枸杞?
不是他們樂意,也不是喜歡養生的小夥子變老了,是身體真不行了啊。
做點副業,多線收入
文科生是重要的內容創作者,在這個內容為王的時候,有太多文科生可以做的事情了!
例如:在線敲代碼、CSDN付費專欄,直播沒準也是,哈哈哈。
學會去帶新人,培養自己的團隊
這個其實很重要,你對新人怎麼樣,也代表著新人之一會對你怎麼樣。
理論上來說,我們不求任何回報,但是如果你有一天自己去了一家陌生的公司,框架,流程,氛圍都是陌生的,你難道還要從頭開始招聘麼。
不是這樣的。大部分都是找自己的老部下。
不要因為現在的工作環境穩定,就忽視了以後會有這種可能性發生。
無論到什麼地方,只要資源到位,你可以快速凝聚出一個有戰鬥力的公司,這都是你的能力。
這些是需要緩慢培養,至少三到五年的時間。
不要怕他們犯錯,不犯錯誤是不會成長的,你就是那個兜底的。