漫談程序員系列:一張圖道盡程序員的出路

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

《推背圖》相傳由唐太宗時期的司天監李淳風和袁天罡合著(此兩人其實是超級武學高手,參見小椴的《開唐》),推算大唐以后中國兩千多年的國運盛衰,在中國七大預言書中居首,是當之無愧的中國第一預言奇書。

? ? 我最喜愛的當代小說作家之一格非也有一篇小說以《推背圖》為名,很好看。

? ? 說真的,本文和推背圖沒有一毛錢關系,唯一的關系就是大家都占個圖字。

? ? --------------正文分割線---------------

? ? 最近在琢磨程序員到底路在何方,經過不斷的自虐和代入,終于在迷霧森林中得圖一張,看之豁然開朗。獨樂樂不如眾樂樂,share了:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1 程序員職業路線圖

? ??

術語表

? ? 圖1中使用了很多術語,這里先做解釋,只有我們大家都說同一種語言,溝通才會順暢。

?

  • 程序員:撰寫代碼,生產軟件,輔助提高社會生產率的腦力勞動者。據說喝的是咖啡,抽的是煙,產的是代碼。他們是計算機誕生后才逐漸興起的一個群體,魚龍混雜,有高飛天上的白富美,也有低到塵埃里的矮矬窮,總之雖一類而九流具足。
  • 初級工程師:入門程序員,懷揣著IT行業多金的遐想進入了IT江湖,開始了練級打怪求升級的游戲之路。
  • 中級工程師:經過幾年的打拼,有一定的拷貝、粘貼功底,掌握了太祖長拳或羅漢掌之類的一技之長,打字速度變快了,雙眼變得稍稍有些迷人了,對零壹世界有了比初級工程師更深刻的認識。
  • 高級工程師:拷貝、粘貼之術出神入化,又習得搭積木和沙灘上蓋大樓的絕技,還能像江湖郎中一樣給病入膏肓的代碼開藥了。
  • 架構師:堅信技術可以讓人牛X,抵制了各種旁門左道的火辣誘惑,閉關多年,終于一生二、二生三、三生萬物了,能夠坐而論道、指手畫腳了,覺得自己形神具備有仙人之資,偶爾來個仙人指路挺爽。
  • 技術專家:看過各種江湖流派,最終在某條羊腸小道之上月黑風高之夜頓悟辟邪劍法,從而成為一代旁門高手,在自己的領域里無人能及。
  • CTO:史上最強的技術流?不一定。不過有一點高度是肯定的:會當凌絕頂,一覽眾山小。正統的CTO專門研究各種武技,尋求能在未來的江湖中克敵制勝的秘辛。國內江湖亂象紛呈,很多CTO其實在打雜做管理。
  • 小組組長:這并不是一個正式的頭銜,在《江湖異聞錄》中,小組組長被掌門委以突襲帶頭人的角色,只因為他有帶頭大哥的潛力,能激發大家的戰斗力。雖然沒有掌握績效考評之類的絕殺技,不過也是通往管理之路的必經過程。
  • 項目組長:管的事兒有點兒多了,要帶人,要帶項目,要和產品經理搞好關系,通常也得和小分隊的成員不分你我,總之什么都干,干的是項目經理的活,只是沒有名分。沒關系,等帶好一個項目,又有項目經理的缺時就可以頂上去了。
  • 項目經理:這是一個正式的打雜的,終于有了名分了。
  • 高級項目經理:又叫項目群經理。他搬了把凳子以便讓自己站得更高,能夠看清楚紛亂的江湖里多個項目的情況,通常需要協調這個協調那個,找項目經理談談話,撫慰一下項目經理或項目組長委屈的心,有時也會被來自上面的壓力壓得喘不過氣來。
  • 部門(項目)總監:So,不知道要說什么了,開始管各種事兒了,評估項目開發過程,擬定考評、績效、職級等各種制度,或者今天跑這個項目聊聊天,明天跑那個項目聊聊天,后者自己左右互搏和自己聊聊天,看起來閑人一個。

?

? ? 就這么多吧,其它的也不想說了。因為我們要討論的是程序員的出路……

程序員的路在何方

? ? 圖1中框起來的,是程序員的主旋律。

? ? 程序員,專業人士也,與瓦工、木匠、發型師、保潔員等類似,不過是社會萬千分工之一種,沒什么高大上,也沒什么矮矬窮,只不過時代大潮中被滾滾洪流裹夾著前進的一群人而已,所謂泯然眾人矣,就是說的這個。

? ? So,該說什么啦?

你怎么混進來的

? ? 不忘初衷。

? ? 不忘初心。

? ? 你是不是忘了當初為什么要干這個?

? ? 那就想想吧。有好處。

? ? 有的人是為了程序員的高薪

? ? 有的人是想要一份體面穩定的工作而已,別出差

? ? 有的人是過來打醬油的早抱定了過兩年就走的心

? ? 有的人想了解這個世界,試試看自己合不合適

? ? 有的人就喜歡計算機的世界,如魚得水

? ? 有的人覺得這個行當既專業又神秘,感覺倍兒棒

? ? 有的人喜歡挑戰,因為軟件開發每一刻都有戰斗的感覺,各種問題紛至沓來

? ? 有的人就喜歡不斷學習新技術,為技術而生,而沒有哪個行業像這個一樣時刻都要學習

? ? 有的人喜歡這個行當的成就感,持續不斷的小刺激總讓人高潮不斷

? ? 有的人渴望有自己的軟件作品

? ? 有的人想用軟件改變世界

? ? 有的人覺得這是一片凈土,罕見爾虞我詐,不必江海寄余生

? ? 有的人覺得這行門檻低,誰都可以來搞兩下

? ? 有的人是來發動戰爭的,攻破別人的防線感覺很爽

? ? 有的人是沖著 IT 界牛人半數都出柜這一點來的

? ? ……

? ? 總之各種理由都有,你也一定有自己的那一個。對吧,你自己的。

將來去哪兒

? ? 迪克牛仔的《三萬英尺》:

要飛向哪里 ?能飛向哪里

愚笨的問題

我浮在天空里

自由的很無力

? ? 前幾天在朋友家翻看米蘭昆德拉的《不能承受的生命之輕》,里面開篇對輕與重的辯論,很有意思,好像和我們也有一點關系,感興趣的可以讀讀,這本書是倒退十來年那個時候小資必讀。

?

? ? 你今天的選擇,決定了明天的路。

? ? 那些來打醬油的,明天就走了。比如我原來有個同事,干了一陣子,來找我辭職,說準備回家搞民間金融去了。后來還在QQ上聯系過我,據說搞得還不錯,問我要不要投資。

? ? 有些人聽說IT行業薪資高,巴巴地進來了,可是干了兩三年,工資還是三兩千,只好失望的走了。其實除非你有經天緯地之才,沒有一開始就高薪的道理。先做事,后有錢。先想錢,錢難來。做程序員搞開發大抵是醬紫的。聽說有個哥們跳到了華為,天天晚上十一二點的搞,有一天他終于不慎抱恙,晚上九點多回去了,被整個組的人鄙視;可是華為熬過三年,錢多多的,年終獎和分紅抵得上你一年的工資。關鍵是,你熬得住嗎?你媳婦熬得住嗎?

? ? 有一段時間我覺得心不夠靜,買了幾本佛經想受點熏陶,讀了《金剛經》、《壇經》、《心經》、《地藏經》,不過都沒讀完。后來在一個同事的工位上看到她貼了一個即時貼:

? ? 觀自在菩薩,行深般若波羅蜜多時,照見五蘊皆空,度一切苦厄。舍利子,色不異空,空不異色,色即是空,空即是色,受想行識,亦復如是。舍利子,是諸法空相,不生不滅,不垢不凈,不增不減。是故空中無色,無受想行識,無眼耳鼻舌身意,無色聲香味觸法,無眼界,乃至無意識界。無無明,亦無無明盡,乃至無老死,亦無老死盡。無苦集滅道,無智亦無得。以無所得故,菩提薩埵,依般若波羅蜜多故,心無掛礙,無掛礙故,無有恐怖,遠離顛倒夢想,究竟涅槃。……

? ? 原來心不凈的人可真多呀,好吧,我不是一個人在戰斗,太欣慰了。

? ? 我看到女同事貼的這段《心經》中的文字沒多久,她離開了公司。再后來我到書店閑逛,發現擺在顯眼處的都是什么這個禪師、那個道長、某個靈修、西方冥想者出的拯救大家心靈的菩提書,也有很多國內的心理作家寫的雞湯,多得很呢真是。我這才意識到,原來我們都有病,藥不能停啊。

? ? 扯遠了吧。

? ? 我想說的是,作為程序員,心態決定你的將來。你自己怎么看待你所從事的工作,你是享受它、厭煩它、無所謂、愛恨交加……這些決定了你將在這條路上走多遠。

? ? 我們生活在一張社會關系網中,因為別人能夠看到你你才存在,這是《作為意識與表象的世界》,你看到的人、別人看到的你,都只是作為觀察者的那個人想看到的,而非真實的人。雖然真實的人客觀存在,但沒有人能看到這樣一個真實的、完整的人,包括你自己。

? ? 你看到你想看到的,他看到他想看到的,張三看到張三想看到的,李四看到李四想看到的……周圍一圈人對你的意識構造了社會化關系中的你,但那只是你的一小部分。僅此而已。如果別人不知道你,你就不存在。為了存在,你就要在別人面前出現,這就是“存在感”。

? ? 所以現在很多人在刷微信、微博、博客、論壇、陌陌,都是在刷存在感。當然也包括我自己。

? ? 讓別人知道你,你才存在。你只有留下點讓別人難以忘懷的東西,你才因這些東西而存在。

? ? 如果想明白了這個道理,一個真正熱愛技術的程序員,想在這個行當里干點兒事情的哥們姐們,就不會去在意別人說什么“軟件開發是青春飯”、“程序員平均壽命低于普通人”、“程序員群體社會地位低下不如雞”、“過了30就要另謀出路”之類的話。作為一個與其它行業沒有什么差別的行業,僅僅是分工不同而已,為什么有這么多說法呢?眾說紛紜,都是雜音。有用的話不這樣,大音希聲。其實黃小琥在《沒那么簡單》這首歌里也說了:

感覺快樂就忙東忙西?

感覺累了就放空自己?

別人說的話 ?隨便聽一聽 ?自己作決定?

不想擁有太多情緒?

?

? ? 當然你也可以認為我通篇都是P話,真沒關系。

程序員的兩條主要通道

? ? 看圖1很明白了,程序員有兩條主要的職業通道:技術和管理。
? ? 在中國有個很不好的傳統:學而優則仕。
? ? 如果你在一個單位干技術干了很多年,還當不上領導,就會被人瞧不起。這也是很多人干開發干了幾年后,正當年富力強生產力旺盛的時候脫離技術通道的原因。因為領導大部分都是這么一個套路:“干得好?行,帶人吧。帶得好?行,升經理吧……”所以,很多原本可以成為技術大牛的人,就這么被拐走了。
? ? 也有一些專注搞技術的開發人員,就要走技術通道。
? ? 有個哥們兒,做 CMS ,前臺后臺都能搞,領導讓他帶三個人,讓他當項目經理,他不樂意,說我自己干就行了,管別人凈浪費時間。領導好說歹說把他綁在了項目經理的位置上,結果他不管那幾個小伙伴,也不安排工作給人家,人家來問他這個怎么干,他就說你不用管了,我來干。最后呢,一個人干了80%以上的活兒,其它幾個人閑得蛋疼。再后來呢,領導不住地找這哥們兒談話,教育他怎么做項目經理……再后來這哥們兒就離職了……
? ? “學而優則仕”還有一個非常不好的地方:普遍認為當領導的薪水要比高技術的高。這也是很多本來有靈氣的開發人員想走管理路線的原因。我想干技術啊,可你們看不起我,不給我那么多錢,周圍人也這么看,我沒法老這么干下去。

?

? ? 其實如果你不在意這種周圍的看法,做技術未嘗不是一條幸福的路。

跳出三界外

? ? 前面我提到有同事搞金融去了,還有別的故事。

? ? 我原來有個同事,程序很厲害,是公司的高級工程師,后來不干了,開便利店去了。
? ? 前幾天有個朋友說他找了個合伙人包了點兒地在搞有機農業,種菜……

? ? 有個阿媛在淘寶上賣內衣,后來把工作辭了……

? ? 有個阿猿開了家咖啡館,名字就叫程序員咖啡……

? ? 這都是跳出三界外的故事。其實也很平常,你的選擇,你做主。如果你覺得這個行當不是人待的地方,再也不要受這罪了,那就走吧。如果一份工作帶給你的痛苦比歡樂多很多,確實沒有留戀的必要。真的,你肯定是走錯了路。

? ? 我在看《高效程序員的45個習慣》時,第一章里引用了一句土耳其諺語,寫在下面,送給諸位,也送給我自己。

? ??不管路走了多遠,錯了就要重新返回。

?

轉自:http://blog.csdn.net/foruok/article/details/40585139#comments?ref=myread

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451463.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451463.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451463.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用@Order調整配置類加載順序

4.1 Order Spring 4.2 利用Order控制配置類的加載順序 4.2 演示 兩個演示bean package com.wisely.spring4_2.order;public class Demo1Service {}package com.wisely.spring4_2.order;public class Demo2Service {}兩個配置類,注意Order配置加載的順序 package com.wisely.…

[php] 高級教程

include 和 require 語句用于在執行流中插入寫在其他文件中的有用的代碼。 include 和 require 除了處理錯誤的方式不同之外,在其他方面都是相同的: require 生成一個致命錯誤(E_COMPILE_ERROR),在錯誤發生后腳本會停止…

常見電腦字符編碼總結

一 、背景知識1、計算機中所有的數據都用01串來表示,至于一串01到底代表什么是由軟件來設定的。比如:01111101111101010111110111110101 可以理解為一條指令,也可以理解為4個字節的char字符,具體是什么要看這個數據是在代碼段還…

jsp+easyui+DataGrid 例子

轉自:https://blog.csdn.net/l3922768721/article/details/51597977 導入js和css <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8"%> <% taglib uri"http://java.sun.com/jsp/jstl/core"…

@Pointcut的用法

Pointcut 是指那些方法需要被執行"AOP",是由"Pointcut Expression"來描述的.Pointcut可以有下列方式來定義或者通過&& || 和!的方式進行組合. args()args()execution()this()target()target()within()within()annotation其中execution 是用的最多的…

restful風格使用小例

1. 頁面傳參數寫法&#xff1a; http://write.blog.csdn.net/ 參數1 / 參數2 / 參數N restful風格是把參數 直接拼在 / 后面&#xff0c;而不是URL地址重寫方式。 2. 后臺接收用法&#xff1a;

Mac 10.12徹底關閉Dashboard

1、打開【系統偏好設置】。 2、點擊進入【Mission Control】。 3、中間有一項【Dashboard】&#xff0c;點擊它右邊的下拉菜單&#xff0c;選擇【關閉】&#xff0c;即可。 轉載于:https://www.cnblogs.com/EasonJim/p/9547489.html

BHO插件操作IE瀏覽器,js調用C#方法

BHO是IE瀏覽器的擴展程序&#xff0c;全名Browser Helper Object&#xff0c;文件格式為DLL文件。可對IE瀏覽器的界面和訪問內容進行修改操作。BHO只適用于IE瀏覽器&#xff0c;對其他任何瀏覽器都沒有作用。&#xff08;引用自百度百科>_<&#xff09; 本示例實現的功能…

多線程讀取文件File

Java代碼 import java.io.*; class DownThread extends Thread { //定義字節數組&#xff08;取水的竹筒&#xff09;的長度 private final int BUFF_LEN 32; //定義讀取的起始點 private long start; //定義讀取的結束點 private long end; …

LeetCode-----翻轉二叉樹

題目——翻轉二叉樹 翻轉一棵二叉樹。 示例&#xff1a; 輸入&#xff1a; 4/ \2 7/ \ / \ 1 3 6 9 輸出&#xff1a; 4/ \7 2/ \ / \ 9 6 3 1 備注: 這個問題是受到 Max Howell 的 原問題 啟發的 &#xff1a; 谷歌&#xff1a;我們90&#xff05;的工…

JAVA中字符串比較equals()和equalsIgnoreCase()的區別

1、使用equals( )方法比較兩個字符串是否相等。它具有如下的一般形式&#xff1a; boolean equals(Object str) 這里str是一個用來與調用字符串&#xff08;String&#xff09;對象做比較的字符串&#xff08;String&#xff09;對象。如果兩個字符串具有相同的字符和長度&…

Spring Boot 是什么,有什么用。

見&#xff1a;http://www.csdn.net/article/a/2016-05-12/15838098 maven/Java/web/bootstrap/dataTable/app開發QQ群&#xff1a;566862629。希望更多人一起幫助我學習。 首先&#xff0c;我們來看一下spring boot是什么&#xff0c;它幫助我們解決了哪些問題&#xff1a; …

純html5+css3能寫出什么驚人效果?

在搞清楚這個問題之前,我們得先弄清楚H5和css3有哪些驚人的特性首先我們來看下H5的新特性,canvas標簽,多媒體標簽(audio/video) 離線存儲, 新的表單元素, 新的表單控件 地理定位等等,要說道驚人效果,其中canvas audio video 還有地理定位等就可以夠玩一年 但題目中的一個純字,一…

FPGA數據傳輸模塊設計

摘要 FPGA適合于大量數據處理的應用&#xff0c;廣泛應用于嵌入式系統。本文設計的FPGA模塊需要對GPS、便攜打印機和串口數據進行處理&#xff0c;將詳細介紹如何設計FPGA和不同外設之間的數據傳輸。同時&#xff0c;在RTL編碼中&#xff0c;編寫使綜合與布局布線效果更佳的代碼…

java獲取當前時間戳的方法

獲取當前時間戳 //方法 一 System.currentTimeMillis(); //方法 二 Calendar.getInstance().getTimeInMillis(); //方法 三 new Date().getTime(); 獲取當前時間 SimpleDateFormat df new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設置日期格式 String date df.…

解決Linux 忘記root 密碼的辦法

今天突然遇到一個問題&#xff0c;那別人的 linux 系統發現root 密碼竟然不知道&#xff0c;這就尷尬了。經過一番百度&#xff0c;記錄下 如何修改root 密碼 1&#xff1a;開機linxu 按E 鍵 2&#xff1a;繼續按E 鍵 3:選擇 kernel..... 按E 4&#xff1a;在rhgb quiet 后面加…

tomcat的class加載的優先順序

來源&#xff1a;https://bbs.csdn.net/topics/80459833Tomcat的class加載的優先順序一覽 最先是$JAVA_HOME/jre/lib/ext/下的jar文件。環境變量CLASSPATH中的jar和class文件。\$CATALINA_HOME/common/classes下的class文件。\$CATALINA_HOME/commons/endorsed下的jar文件。\$C…

簡單理解Hadoop(Hadoop是什么、如何工作)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 一、Hadoop主要的任務部署分為3個部分&#xff0c;分別是&#xff1a;Client機器&#xff0c;主節點和從節點。主節點主要負責Hadoop兩個…

JPA @Id 和 @GeneratedValue 注解詳解

Id&#xff1a; Id 標注用于聲明一個實體類的屬性映射為數據庫的主鍵列。該屬性通常置于屬性聲明語句之前&#xff0c;可與聲明語句同行&#xff0c;也可寫在單獨行上。 Id標注也可置于屬性的getter方法之前。 GeneratedValue&#xff1a; GeneratedValue 用于標注主鍵的生…

Factorials 階乘

Description N的階乘寫作N!表示小于等于N的所有正整數的乘積。階乘會很快的變大&#xff0c;如13!就必須用32位整數類型來存儲&#xff0c;70&#xff01;即使用浮點數也存不下了。你的任務是找到階乘最后面的非零位。舉個例子,5!1*2*3*4*5120所以5!的最后面的非零位是2&#x…