大專畢業,想轉行學編程,25歲來得及嗎?
1,描述你需要完成的需求以及目的(目的就是為什麼要做這個需求)&
我想找份有關編程的工作,但是瞎子摸象,什麼都不懂,想找這份工作的目的是為了賺錢,有錢了之後才能實現自己的想法&
2,描述你的想法或思路&
我的想法是通過編程,多吃幾年苦,而且覺得編程應該是個比較有趣的職業,通過不斷學習提高自己,就像打怪升級一樣&
3,描述具體的實現過程&
想先找到有關編程的工作,然後再一步步往上爬&
4,描述遇到的問題,包括正確信息,報錯信息或得到的不正確的信息&
遇到的問題就是我現在無業游民,該怎麼踏出自己的第一步,找份工作去學習,然後跟著蕭大神的節奏一步步往上爬&
5,有條件則貼出具體實現代碼&
沒能力不是沒條件@蕭井陌
我整理了一下你的問題。
通過描述來看,第一步並不是找份工作去學習,而是在知乎搜索如何學編程找工作。1,描述你需要完成的需求以及目的(目的就是為什麼要做這個需求)
我想找份有關編程的工作,但是瞎子摸象,什麼都不懂,想找這份工作的目的是為了賺錢,有錢了之後才能實現自己的想法2,描述你的想法或思路我的想法是通過編程,多吃幾年苦,而且覺得編程應該是個比較有趣的職業,通過不斷學習提高自己,就像打怪升級一樣3,描述具體的實現過程想先找到有關編程的工作,然後再一步步往上爬4,描述遇到的問題,包括正確信息,報錯信息或得到的不正確的信息遇到的問題就是我現在無業游民,該怎麼踏出自己的第一步,找份工作去學習,然後跟著蕭大神的節奏一步步往上爬
5,有條件則貼出具體實現代碼沒能力不是沒條件
剛剛找到一個很有意思的問題,剛好解答題主的答案:26 歲開始學編程晚了嗎? - 謝科的回答本答案持續輸出,感激大家的贊~(≧▽≦)/~,知乎小透明都要開心炸了
作者:陳皓,2011年7月18日,發表於程序員技術練級攻略
這篇文章對我幫助太大了!至少指明了我未來五年努力的方向[hopefully]:原文精華:更新於5月20號:感謝黎九的批評,最近要考試沒空寫,有問題到評論區問我,更新幾個在知乎看的好答案月光博客6月12日發表了《寫給新手程序員的一封信》,翻譯自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告訴我,他希望在酷殼上看到一篇更具操作性的文章。因為他也是喜歡編程和技術的傢伙,於是,我讓他把他的一些學習Python和Web編程的一些點滴總結一下。於是他給我發來了一些他的心得和經歷,我在把他的心得做了不多的增改,並根據我的經歷增加了「進階」一節。這是一篇由新手和我這個老傢伙根據我們的經歷完成的文章。
我的這個朋友把這篇文章取名叫Build Your Programming Technical Skills,我實在不知道用中文怎麼翻譯,但我在寫的過程中,我覺得這很像一個打網遊做任務升級的一個過程,所以取名叫「技術練級攻略」,題目有點大,呵呵,這個標題純粹是為了好玩。這裡僅僅是在分享Mailper和我個人的學習經歷。(註:省去了我作為一個初學者曾經學習過的一些技術(今天明顯過時了),如:Delphi/Power builder,也省去了我學過的一些我覺得沒意思的技術Lotus Notes/ActiveX/COM/ADO/ATL/.NET ……)
前言你是否覺得自己從學校畢業的時候只做過小玩具一樣的程序?走入職場後哪怕沒有什麼經驗也可以把以下這些課外練習走一遍
建議:
- 不要亂買書,不要亂追新技術新名詞,基礎的東西經過很長時間積累而且還會在未來至少10年通用。
- 回顧一下歷史,看看歷史上時間線上技術的發展,你才能明白明天會是什麼樣。
- 一定要動手,例子不管多麼簡單,建議至少自己手敲一遍看看是否理解了裡頭的細枝末節。
- 一定要學會思考,思考為什麼要這樣,而不是那樣。還要舉一反三地思考。
注:你也許會很奇怪為什麼下面的東西很偏Unix/Linux,這是因為我覺得Windows下的編程可能會在未來很沒有前途,原因如下:
- 現在的用戶界面幾乎被兩個東西主宰了,1)Web,2)移動設備iOS或Android。Windows的圖形界面不吃香了。
- 越來越多的企業在用成本低性能高的Linux和各種開源技術來構架其系統,Windows的成本太高了。
- 微軟的東西變得太快了,很不持久,他們完全是在玩弄程序員。詳情參見《Windows編程革命史》
所以,我個人認為以後的趨勢是前端是Web+移動,後端是Linux+開源。開發這邊基本上沒Windows什麼事。
啟蒙入門1、 學習一門腳本語言,例如Python/Ruby
可以讓你擺脫對底層語言的恐懼感,腳本語言可以讓你很快開發出能用得上的小程序。實踐項目:
- 處理文本文件,或者csv (關鍵詞 python csv, python open, python sys) 讀一個本地文件,逐行處理(例如 word count,或者處理log)
- 遍曆本地文件系統 (sys, os, path),例如寫一個程序統計一個目錄下所有文件大小並按各種條件排序並保存結果
- 跟資料庫打交道 (python sqlite),寫一個小腳本統計資料庫里條目數量
- 學會用各種print之類簡單粗暴的方式進行調試
- 學會用Google (phrase, domain, use reader to follow tech blogs)
為什麼要學腳本語言,因為他們實在是太方便了,很多時候我們需要寫點小工具或是腳本來幫我們解決問題,你就會發現正規的編程語言太難用了。
2、 用熟一種程序員的編輯器(不是IDE) 和一些基本工具
- Vim / Emacs / Notepad++,學會如何配置代碼補全,外觀,外部命令等。
- Source Insight (或 ctag)
使用這些東西不是為了Cool,而是這些編輯器在查看、修改代碼/配置文章/日誌會更快更有效率。
3、 熟悉Unix/Linux Shell和常見的命令行
- 如果你用windows,至少學會用虛擬機里的linux, vmware player是免費的,裝個Ubuntu吧
- 一定要少用少用圖形界面。
- 學會使用man來查看幫助
- 文件系統結構和基本操作 ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip …
- 學會使用一些文本操作命令 sed/awk/grep/tail/less/more …
- 學會使用一些管理命令 ps/top/lsof/netstat/kill/tcpdump/iptables/dd…
- 了解/etc目錄下的各種配置文章,學會查看/var/log下的系統日誌,以及/proc下的系統運行信息
- 了解正則表達式,使用正則表達式來查找文件。
對於程序員來說Unix/Linux比Windows簡單多了。(參看我四年前CSDN的博文《其實Unix很簡單》)學會使用Unix/Linux你會發現圖形界面在某些時候實在是太難用了,相當地相當地降低工作效率。
4、 學習Web基礎(HTML/CSS/JS) + 伺服器端技術 (LAMP)
未來必然是Web的世界,學習WEB基礎的最佳網站是W3School。
- 學習HTML基本語法
- 學習CSS如何選中HTML元素並應用一些基本樣式(關鍵詞:box model)
- 學會用 Firefox + Firebug 或 chrome 查看你覺得很炫的網頁結構,並動態修改。
- 學習使用Javascript操縱HTML元件。理解DOM和動態網頁(Dynamic HTML: The Definitive Reference, 3rd Edition - O"Reilly Media) 網上有免費的章節,足夠用了。或參看 DOM 。
- 學會用 Firefox + Firebug 或 chrome 調試Javascript代碼(設置斷點,查看變數,性能,控制台等)
- 在一台機器上配置Apache 或 Nginx
- 學習PHP,讓後台PHP和前台HTML進行數據交互,對伺服器相應瀏覽器請求形成初步認識。實現一個表單提交和反顯的功能。
- 把PHP連接本地或者遠程資料庫 MySQL(MySQL 和 SQL現學現用夠了)
- 跟完一個名校的網路編程課程(例如:http://www.stanford.edu/~ouster/cgi-bin/cs142-fall10/index.php ) 不要覺得需要多於一學期時間,大學生是全職一學期選3-5門課,你業餘時間一定可以跟上
- 學習一個javascript庫(例如jQuery 或 ExtJS)+ Ajax (非同步讀入一個伺服器端圖片或者資料庫內容)+JSON數據格式。
- HTTP: The Definitive Guide 讀完前4章你就明白你每天上網用瀏覽器的時候發生的事情了(proxy, gateway, browsers)
- 做個小網站(例如:一個小的留言板,支持用戶登錄,Cookie/Session,增、刪、改、查,上傳圖片附件,分頁顯示)
- 買個域名,租個空間,做個自己的網站。
進階加深
1、 C語言和操作系統調用
- 重新學C語言,理解指針和內存模型,用C語言實現一下各種經典的演算法和數據結構。推薦《計算機程序設計藝術》、《演算法導論》和《編程珠璣》。
- 學習(麻省理工免費課程)計算機科學和編程導論
- 學習(麻省理工免費課程)C語言內存管理
- 學習Unix/Linux系統調用(Unix高級環境編程),,了解系統層面的東西。
- 用這些系統知識操作一下文件系統,用戶(實現一個可以拷貝目錄樹的小程序)
- 用fork/wait/waitpid寫一個多進程的程序,用pthread寫一個多線程帶同步或互斥的程序。多進程多進程購票的程序。
- 用signal/kill/raise/alarm/pause/sigprocmask實現一個多進程間的信號量通信的程序。
- 學會使用gcc和gdb來編程和調試程序(參看我的《用gdb調試程序》)
- 學會使用makefile來編譯程序。(參看我的《跟我一起寫makefile》)
- IPC和Socket的東西可以放到高級中來實踐。
- 學習Windows SDK編程(Windows 程序設計 ,MFC程序設計)
- 寫一個窗口,了解WinMain/WinProcedure,以及Windows的消息機制。
- 寫一些程序來操作Windows SDK中的資源文件或是各種圖形控制項,以及作圖的編程。
- 學習如何使用MSDN查看相關的SDK函數,各種WM_消息以及一些常式。
- 這本書中有很多常式,在實踐中請不要照抄,試著自己寫一個自己的常式。
- 不用太多於精通這些東西,因為GUI正在被Web取代,主要是了解一下Windows 圖形界面的編程。@virushuo 說:「 我覺得GUI確實不那麼熱門了,但充分理解GUI工作原理是很重要的。包括移動設備開發,如果沒有基礎知識仍然很吃力。或者說移動設備開發必須理解GUI工作,或者在win那邊學,或者在mac/iOS上學」。
2、學習Java
- Java 的學習主要是看經典的Core Java 《Java 核心技術編程》和《Java編程思想》(有兩卷,我僅鏈了第一卷,足夠了,因為Java的圖形界面了解就可以了)
- 學習JDK,學會查閱Java API Doc Java Platform SE 6
- 了解一下Java這種虛擬機語言和C和Python語言在編譯和執行上的差別。從C、Java、Python思考一下「跨平台」這種技術。
- 學會使用IDE Eclipse,使用Eclipse 編譯,調試和開發Java程序。
- 建一個Tomcat的網站,嘗試一下JSP/Servlet/JDBC/MySQL的Web開發。把前面所說的那個PHP的小項目試著用JSP和Servlet實現一下。
3、Web的安全與架構
- 學習HTML5,網上有很多很多教程,以前酷殼也介紹過很多,我在這裡就不羅列了。
- 學習Web開發的安全問題(參考新浪微博被攻擊的這個事,以及Ruby的這篇文章)
- 學習HTTP Server的rewrite機制,Nginx的反向代理機制,fast-cgi(如:PHP-FPM)
- 學習Web的靜態頁面緩存技術。
- 學習Web的非同步工作流處理,數據Cache,數據分區,負載均衡,水平擴展的構架。
- 實踐任務:
- 使用HTML5的canvas 製作一些Web動畫。
- 嘗試在前面開發過的那個Web應用中進行SQL注入,JS注入,以及XSS攻擊。
- 把前面開發過的那個Web應用改成構造在Nginx + PHP-FPM + 靜態頁面緩存的網站
4、學習關係型資料庫
- 你可以安裝MSSQLServer或MySQL來學習資料庫。
- 學習教科書里資料庫設計的那幾個範式,1NF,2NF,3NF,……
- 學習資料庫的存過,觸發器,視圖,建索引,游標等。
- 學習SQL語句,明白表連接的各種概念(參看《SQL Join的圖示》)
- 學習如何優化資料庫查詢(參看《MySQL的優化》)
- 實踐任務:設計一個論壇的資料庫,至少滿足3NF,使用SQL語句查詢本周,本月的最新文章,評論最多的文章,最活躍用戶。
5、一些開發工具
- 學會使用SVN或Git來管理程序版本。
- 學會使用JUnit來對Java進行單元測試。
- 學習C語言和Java語言的coding standard 或 coding guideline。(我N年前寫過一篇關C語言非常簡單的文章——《編程修養》,這樣的東西你可以上網查一下,一大堆)。
- 推薦閱讀《代碼大全》《重構》《代碼整潔之道》
高級深入
1、C++ / Java 和面向對象
我個人以為學好C++,Java也就是舉手之勞。但是C++的學習曲線相當的陡。不過,我覺得C++是最需要學好的語言了。參看兩篇趣文「C++學習信心圖」 和「21天學好C++」
- 學習(麻省理工免費課程)C++面向對象編程
- 讀我的 「如何學好C++」中所推薦的那些書至少兩遍以上(如果你對C++的理解能夠深入到像我所寫的《C++虛函數表解析》或是《C++對象內存存局》,或是《C/C++返回內部靜態成員的陷阱》那就非常不錯了)
- 然後反思為什麼C++要干成這樣,Java則不是?你一定要學會對比C++和Java的不同。比如,Java中的初始化,垃圾回收,介面,異常,虛函數,等等。
- 實踐任務:
- 用C++實現一個BigInt,支持128位的整形的加減乘除的操作。
- 用C++封裝一個數據結構的容量,比如hash table。
- 用C++封裝並實現一個智能指針(一定要使用模板)。
- 《設計模式》必需一讀,兩遍以上,思考一下,這23個模式的應用場景。主要是兩點:1)鍾愛組合而不是繼承,2)鍾愛介面而不是實現。(也推薦《深入淺出設計模式》)
- 實踐任務:
- 使用工廠模式實現一個內存池。
- 使用策略模式製做一個類其可以把文本文件進行左對齊,右對齊和中對齊。
- 使用命令模式實現一個命令行計算器,並支持undo和redo。
- 使用修飾模式實現一個酒店的房間價格訂價策略——旺季,服務,VIP、旅行團、等影響價格的因素。
- 學習STL的用法和其設計概念 – 容器,演算法,迭代器,函數子。如果可能,請讀一下其源碼。
- 實踐任務:嘗試使用面向對象、STL,設計模式、和WindowsSDK圖形編程的各種技能
- 做一個貪吃蛇或是俄羅斯方塊的遊戲。支持不同的級別和難度。
- 做一個文件瀏覽器,可以瀏覽目錄下的文件,並可以對不同的文件有不同的操作,文本文件可以打開編輯,執行文件則執行之,mp3或avi文件可以播放,圖片文件可以展示圖片。
- 學習C++的一些類庫的設計,如: MFC(看看候捷老師的《深入淺出MFC》) ,Boost, ACE, CPPUnit,STL (STL可能會太難了,但是如果你能了解其中的設計模式和設計那就太好了,如果你能深入到我寫的《STL string類的寫時拷貝技術》那就非常不錯了,ACE需要很強在的系統知識,參見後面的「加強對系統的了解」)
- Java是真正的面向對象的語言,Java的設計模式多得不能再多,也是用來學習面向對象的設計模式的最佳語言了(參看Java中的設計模式)。
- 推薦閱讀《Effective Java》 and 《Java解惑》
- 學習Java的框架,Java的框架也是多,如Spring, Hibernate,Struts 等等,主要是學習Java的設計,如IoC等。
- Java的技術也是爛多,重點學習J2EE架構以及JMS, RMI, 等消息傳遞和遠程調用的技術。
- 學習使用Java做Web Service (官方教程在這裡)
- 實踐任務: 嘗試在Spring或Hibernate框架下構建一個有網路的Web Service的遠程調用程序,並可以在兩個Service中通過JMS傳遞消息。
C++和Java都不是能在短時間內能學好的,C++玩是的深,Java玩的是廣,我建議兩者選一個。我個人的學習經歷是:
- 深究C++(我深究C/C++了十來年了)
- 學習Java的各種設計模式。
2、加強系統了解
重要閱讀下面的幾本書:
- 《Unix編程藝術》了解Unix系統領域中的設計和開發哲學、思想文化體系、原則與經驗。你一定會有一種醍醐灌頂的感覺。
- 《Unix網路編程卷1,套接字》這是一本看完你就明白網路編程的書。重要注意TCP、UDP,以及多路復用的系統調用select/poll/epoll的差別。
- 《TCP/IP詳解 卷1:協議》- 這是一本看完後你就可以當網路黑客的書。了解乙太網的的運作原理,了解TCP/IP的協議,運作原理以及如何TCP的調優。
- 實踐任務:
- 理解什麼是阻塞(同步IO),非阻塞(非同步IO),多路復用(select, poll, epoll)的IO技術。
- 寫一個網路聊天程序,有聊天伺服器和多個聊天客戶端(服務端用UDP對部分或所有的的聊天客戶端進Multicast或Broadcast)。
- 寫一個簡易的HTTP伺服器。
- 《Unix網路編程卷2,進程間通信》信號量,管道,共享內存,消息等各種IPC…… 這些技術好像有點老掉牙了,不過還是值得了解。
- 實踐任務:
- 主要實踐各種IPC進程序通信的方法。
- 嘗試寫一個管道程序,父子進程通過管道交換數據。
- 嘗試寫一個共享內存的程序,兩個進程通過共享內存交換一個C的結構體數組。
- 學習《Windows核心編程》一書。把CreateProcess,Windows線程、線程調度、線程同步(Event, 信號量,互斥量)、非同步I/O,內存管理,DLL,這幾大塊搞精通。
- 實踐任務:使用CreateProcess啟動一個記事本或IE,並監控該程序的運行。把前面寫過的那個簡易的HTTP服務用線程池實現一下。寫一個DLL的鉤子程序監控指定窗口的關閉事件,或是記錄某個窗口的按鍵。
- 有了多線程、多進程通信,TCP/IP,套接字,C++和設計模式的基本,你可以研究一下ACE了。使用ACE重寫上述的聊天程序和HTTP伺服器(帶線程池)
- 實踐任務:通過以上的所有知識,嘗試
- 寫一個服務端給客戶端傳大文件,要求把100M的帶寬用到80%以上。(注意,磁碟I/O和網路I/O可能會很有問題,想一想怎麼解決,另外,請注意網路傳輸最大單元MTU)
- 了解BT下載的工作原理,用多進程的方式模擬BT下載的原理。
3、系統架構
- 負載均衡。HASH式的,純動態式的。(可以到Google學術里搜一些關於負載均衡的文章讀讀)
- 多層分散式系統 – 客戶端服務結點層、計算結點層、數據cache層,數據層。J2EE是經典的多層結構。
- CDN系統 – 就近訪問,內容邊緣化。
- P2P式系統,研究一下BT和電驢的演算法。比如:DHT演算法。
- 伺服器備份,雙機備份系統(Live-Standby和Live-Live系統),兩台機器如何通過心跳監測對方?集群主結點備份。
- 虛擬化技術,使用這個技術,可以把操作系統當應用程序一下切換或重新配置和部署。
- 學習Thrift,二進位的高性能的通訊中間件,支持數據(對象)序列化和多種類型的RPC服務。
- 學習Hadoop。Hadoop框架中最核心的設計就是:MapReduce和HDFS。MapReduce的思想是由Google的一篇論文所提及而被廣為流傳的,簡單的一句話解釋MapReduce就是「任務的分解與結果的匯總」。HDFS是Hadoop分散式文件系統(Hadoop Distributed File System)的縮寫,為分散式計算存儲提供了底層支持。
- 了解NoSQL資料庫(有人說可能是一個過渡炒作的技術),不過因為超大規模以及高並發的純動態型網站日漸成為主流,而SNS類網站在數據存取過程中有著實時性等剛性需求,這使得目前NoSQL資料庫慢慢成了人們所關注的焦點,並大有成為取代關係型資料庫而成為未來主流數據存儲模式的趨勢。當前NoSQL資料庫很多,大部分都是開源的,其中比較知名的有:MemcacheDB、Redis、Tokyo Cabinet(升級版為Kyoto Cabinet)、Flare、MongoDB、CouchDB、Cassandra、Voldemort等。
寫了那麼多,回顧一下,覺得自己相當的有成就感。希望大家不要嚇著,我自己這十來年也在不斷地學習,今天我也在學習中,人生本來就是一個不斷學習和練級的過程。不過,一定有漏的,也有不對的,還希望大家補充和更正。(我會根據大家的反饋隨時更新此文)歡迎大家通過我的微博(@左耳朵耗子)和twitter(@haoel)和我交流。
—– 更新 2011/07/19 —–
1)有朋友奇怪為什麼我在這篇文章開頭說了web+移動,卻沒有在後面提到iOS/Android的前端開發。因為我心裡有一種感覺,移動設備上的UI最終也會被Javascript取代。大家可以用iPhone或Android看看google+,你就會明白了。
2)有朋友說我這裡的東西太多了,不能為了學習而學習,我非常同意。我在文章的前面也說了要思考。另外,千萬不要以為我說的這些東西是一些新的技術,這份攻略里95%以上的全是基礎。而且都是久經考驗的基礎技術。即是可以讓你一通百通的技術,也是可以讓你找到一份不錯工作的技術。
3)有朋友說學這些東西學完都40了,還不如想想怎麼去掙錢。我想告訴大家,一是我今年還沒有40歲,二是學無止境啊,三是我不覺得掙錢有多難,難的是怎麼讓你值那麼多錢?無論是打工還是創業,是什麼東西讓你自己的價值,讓你公司的價值更值錢?別的地方我不敢說,對於互聯網或IT公司來說,技術實力絕對是其中之一。
4)有朋友說技術都是工具,不應該如此痴迷這句話沒有錯,有時候我們需要更多的是抬起頭來看看技術以外的事情,或者是說我們在作技術的時候不去思考為什麼會有這個技術,為什麼不是別的,問題不在於技術,問題在於我們死讀書,讀死書,成了技術的書獃子。
5) 對於NoSQL,最近比較火,但我對其有點保守,所以,我只是說了解就可以。對於Hadoop,我覺得其在分散式系統上有巨大的潛力,所以需要學習。 對於關係型資料庫,的確是很重要的東西,這點是我的疏忽,在原文里補充。
哦。如果你連最基本的文字都組織不好。我建議……還是不要學編程了。
25歲,幹啥都不晚。
首先,你應該弄清楚自己是否是真的喜歡編程?因為沒有興趣是堅持不下來的,專業出身的人都不一定搞編程寫代碼。我支持任何人在任何時間做任何突破自己的事情,因為這往往需要很大的勇氣,祝你能夠一直走下去,堅定信念(不論你選擇什麼路)~
程序員只能做到28歲, 你現在25了開始學, 學了之後又得馬上轉行多累啊. (光速逃
我25復原回家,26歲重新學習編程,今年27,入職整半年
想學就學吧,年齡永遠不是最大的問題
問題是你真的不是說說而已?想找份工作學習編程,這太理想了,想找份程序員的工作,至少基礎得有吧?
編程聽起來多麼高大上的一個詞,但編程真的沒有想像中的那麼難入門,但努力與勤奮二字卻是真的少不了的。
還有就是,編程該怎麼入門,什麼階段看什麼東西,學到什麼程度,知乎上、百度上、各種論壇上先人們已經回答過無數遍了。對你會有很好的參考作用
------------------------------2017年8月8日-------------------------
距上一次編輯已經快一年了,不知道題主有沒有入行,現在怎麼樣了。說一說這一年來我的一些感觸,現在互聯網行業可以拿相對高的工資已經是一種共識,導致的結果就是好像人人都在學編程或者想要學編程,我身邊有很多從事其他行業的同學或者親戚都打算去學編程,最開始我也很熱情的跟他們說需要做的準備,看什麼書什麼視頻,然而很久之後他們還是在問同樣的問題,只不過問的對象變成了其他人,好像要把周圍學過編程的人都問過一遍才放心似得。我認識的想轉行的人中,到目前為止,真正下定決心轉行的只有一個人,他最終也的確拿到了之前不可能拿到的工資。
我想說的是不管是25歲也好,27歲也好,只要你把想法付出實踐就永遠不會太晚,只不過付出的代價有高低而已,怕就怕在你一直在想一直在問,想得到又怕付出代價,就這樣一天一天的把時間浪費掉了。
我26歲,從廣告設計轉前端,已經自學了一段時間了,而且每天廣告上的工作也幾乎佔用了我全部的時間,還經常加班熬夜。學習的時間真不多,但做廣告行業,年薪12W在成都就已經到頭了,能輕易看到頭的行業有什麼意思?我要轉做IT,不是因為錢的問題,主要是個人有些想法的實現需要熟悉IT行業才能完成,題主我們一起加油!
當然來得及,當初我也是大專,27歲後才開始敲代碼的,開始做的就是Linux下的C,至今也有8年之久還在敲代碼。。。樓上扯這麼多沒啥用,先要開始做點小程序,等你開始後,理論可以慢慢的補。
種樹的最佳時間是20年前,僅次於它的最佳時間是現在。
既然你主動問出這個問題了說明你對年齡產生了顧慮,其實真的沒有必要,學編程跟年齡真的沒什麼關係,但是由於你的畏懼心理和這種思考方式與態度,我認為你學不成,放棄吧。
先學半個月再來問問題。半個月以後要是還來知乎問這個問題我會告訴你來不及了。
這篇文章是寫給迷茫期的朋友,我的親身經歷也許能作為你人生經歷的參考。也許你會對你所在的行業感到迷茫,或不公,我希望我這篇文章能幫助身邊正在困惑的你……我以我的親身經歷和大家客觀的講一講類似北大青鳥、達內培訓機構的弊端。當我想寫下這些文章的時候,我不知道應該怎麼寫起,從2008年開始說起,我考上了湖北中醫藥大學。
我學醫的目的就是為了去治療艾滋病,真的,我當時就是這麼想的,出來社會才知道,很多時候人是在隨著社會大流中,才能去決定我們能成為怎麼樣的人,很多職業成就都不是預先規劃好的,是社會的趨勢大流把你一直往前推,然後你在這股大流下努力,才成就了現在的你。我選擇中醫是因為我認為只有中醫的思維方式能治療這種人類難以攻克的疾病,這是我當時認為的,但是「實踐才是檢驗真理的唯一標準」,一切道理都是行出來的,可不可行,去做就知道。在大學期間,我很快的掌握了524味中藥,100多中方劑組成,掌握了基本的中醫診斷,了解了人體解剖學,針灸、穴位、陰陽五行……理解到了中醫的哲學文化。其實古人教給我們的只是平衡的道理,你要體會這種動態平衡,在相生相剋這種動態平衡中去找到治病的解決之道。人生病了只是體內陰陽不平衡了,所以醫者必須通過各種治療辦法例如西藥、按摩、中藥、針灸等把這種不平衡給糾正回來。
在中醫的四大經典中,首推《傷寒論》,這就是我在大學背到了發黃的《傷寒論》,裡面都是古文,我當時認為,中醫是非常厲害的,所以非常努力的背誦中醫古籍《傷寒論》,這本《傷寒論》就是被我讀到發黃的書了。
這本書是在在東漢末年張仲景所著。這本《傷寒論》可以說是奠定了中醫理、法、方、葯的基礎,為中醫「辨證論治」提供了一種中醫治療的思考方式。整體闡述了一個人得了某一種疾病的傳變規律。我們知道人冬天感受了寒冷會感冒、然後發燒,我們去打針就沒事了。但是往往不是這樣,如果發燒了打針好不了,就會傳到胃,導致大便干硬,高熱不退,滿口說胡話……,如果高熱不退還治不好,傳到膽,那麼就會渾身打顫,一時冷一時熱。這時候你就會問我為什麼傳到膽,人體會一時冷一時熱?這個中醫沒有辦法給你解釋,不論現在中醫學、西醫學怎麼給你解釋,都不一定是對的,我們從小受到太多的邏輯學的學習,總想問為什麼。但是任何一個科學給你講了一個問什麼,只是我們人腦認為他是對的,然後方便我們記憶而已。當時在大學背書真的很認真,有這本書為證!已經背到發黃了!而且全部都是古文!
我們腦袋總想追究一個我們方便理解的線索,以便我們記住而已。這個世界很多時候都是各種因緣合和在一起,產生了一些奇妙的變化,這種變化會呈現出一些規律,我們捕捉到的只是這個規律,但是很多很多的變化,我們是很難去捕捉的。世間的道理都沒有錯,但是不一定對。我們渴望得到一些定理和公式,以便控制、驅動著這個自然界。這就是我們經常說的:「科學技術是第一生產力」。那麼生產力就是人了利用自然、適應自然和使用自然的能力。以前我們用步行,現在我們科學家發現了某些自然之中力學的規律,能量守恆定律發明了汽車。之後我們又發現了空氣動力學,發明了飛機。所以這一切都是我們發現了自然的規律,這些規律並不是我們創造和發明的。只是我們生活在自然之中,發現了自然這些規律產生的能量,然後把各種規律組合在一起,所以有了我們今天的汽車,飛機、原子彈等等。但是我們人類掌握了這些自然規律之後,地球環境正在慢慢的被人類破壞,這就是破壞了生態平衡。
一切都是由平衡導致的,2009年,發生很多變故,包括外在環境的和內在環境的變故。先說一說內在環境的變故,當時大學教了一本計算機語言VB編程語言。可以說當我學這門編程語言的時候的狀態是完全「不知所云」。因為我不理解編程語言的思考模式,當時學校正好教一門早已經過時的編程語言VB,但就是VB打開了我編程的大門,當時學編程的感覺一點也不懂,因為從來沒有這種思維。
很多人經常問學編程難不難?如果你腦子沒有轉換過來的時候,學編程可以說是一種痛苦。覺悟的本質就是「顛倒」你的思考方式。但是學任何一種學科,不論是商學、金融學、物理學……都是一種對世界抽象的思考方式,這些思考方式當你能體悟其中的奧妙,你就會覺得這門課程非常有意思。學習任何知識的時候,有的人一天就能體會其中的門道,而有的人要花一個月,有的人要花三年。為什麼會這樣?因為生長環境,造就了你的思考模式,所以見多識廣是開闊思考方式的唯一辦法,也是打破你固有偏見的唯一一種方式。
但同時,我在大學的國醫堂幫一位有名的中醫教授抄方子,有一個中年婦女得了直腸癌,已經去過西醫院進行了檢查,檢查結果需要動手術,來國醫堂的問了我們學校的老中醫教授,需不需要動手術?獲得的官方回答是:「你要聽醫生的話」。這句話非常耐人尋味,什麼叫「聽醫生的話」?也就是說要聽那個西醫的話,要動手術咯。我當時好像明白了一切,別人就是不想動手術,來找了中醫,把希望寄托在中醫身上。而且一個治病治了40幾年的老教授,這個病能不能治,你心理沒有底嗎?我對中醫的教授產生了懷疑,我懷疑的不是中醫,是庸醫……
話說回來,當時對於VB這門編程語言老師也不怎麼願意教。為什麼老師不怎麼願意教?因為大學所有的考核標準就是60分萬歲了,至於你能不能成才,靠你自己圖書管去自學去!這就是大學的教育方式呀!美其名曰:「全面發展」。任何一個大學放寬管理的績效考核,對於學生畢業來說是最大的悲哀。因為大學只是發了一個大學的畢業證和學位證,這樣的成本是最低的成本的教育方式。
我到現在為止我也是想不明白為什麼一個中醫學院的學生要學計算機編程語言?大學有時候真的很奇怪,為什麼要強制上一些我看不懂,並且一定要上的課程,還要考一些沒有意義的證書。《思想道德和法律》、《馬克思理論》、《VB編程基礎》……這些課程和我的專業課有什麼關係?這個社會分工得那麼細,每個人的時間都是有限的,為什麼要去學這些知識?還有我們學中醫的為什麼要讓西醫老師給我們上中醫的診斷學?當時學VB編程的時候,聽一個計算機系的學長說編程可以當黑客,所以就買了下面這本&
但是裡面的技術難點我根本就不知道怎麼弄懂,讓我越學越懵,我已經沒辦法成為一個黑客,因為裡面的代碼我看不懂,我內心很困惑,難道就這樣放棄嗎?我嘗試的用我笨拙的搜索方式搜索VB黑客編程,沒想到彈出了北大青鳥的廣告,(現在才知道,北大青鳥的網路營銷的費用最少每年200萬,羊毛出在羊身上,最終轉嫁的還是在學生的學費上)。我點了進去,然後右下角出現了諮詢的窗口,我點擊進去,我說我想學黑客編程,你那邊教黑客編程嗎?諮詢師說他們那邊教黑客編程,讓我過去他們培訓的地方做詳細的諮詢,當我我剛出社會很天真,去到他們培訓的地方,他們就開始和我說編程多好,要成為黑客是需要學他們的技術的(其實是他們的營銷話術,當時我不懂,就信以為真),要學ACCP的課程,課程體系有java和.net學費需要32000元,學1年半。我當時聽到3萬多元,當時我每個月的生活費只有600多,當時覺得好多錢啊。但是北大青鳥給我洗腦就是,他們是北大旗下的,有三次推薦就業機會,他們是印度知名的培訓學校,18個月升級一次課程。給我洗腦的方式就是他們是最好的一家it培訓機構,也是唯一一家it培訓機構,畢業之後還會有accp高級軟體工程師證書,這個證書就像下面這樣子啦……
我當時在上大學,不懂城裡人的套路深,覺得又多一個證書很好,因為從小到大的教育就是獎狀,證書是最重要的。諮詢完之後我就回去了,然後諮詢師每天瘋狂的關心你一樣的打電話,他們的目的就是為了你報名之後他們的提成。
就在這時,上天給我開了一個玩笑,家裡發生了經濟變故,不過危險的到來,總是存在生機和轉機,此時父母也同意我大學退學去學一技之長,養家糊口。
然後和5-60個大學同學借了3萬多元去了北大青鳥。只要進進入了北大青鳥,一切洗腦就開始了。一個班都有班主任,一個教員。其實存在班主任的目的就是了解學員的情況,安撫學員,然後讓他們交第二學期、第三學期的學費。然後經常考試測試我們的成績,其實現在想起來,就算考100分能讓我高薪就業嗎?! 他們鼓吹他們的技術多牛逼多牛逼。等我學出來之後,我當時是北大青鳥那個班數一數二的成績。出去找工作,投了簡歷在58同城上,有一家it培訓機構招it實習生,我就納悶了,本身就是it培訓機構,為什麼不從自己的學校招聘,當時我對自己的技術也沒有底氣,就去了那家培訓機構去面試。沒想到他們公司也是培訓java的,而且學費2萬,比北大青鳥的學費低了1萬2千,而且只培訓半年,我看了他們的教學大綱,當時立馬懵逼,所培訓的內容比北大青鳥的知識還要多很多。因為這家培訓機構不知道我在北大青鳥培訓過,然後類似像北大青鳥的洗腦方式又開始了,我當時就好像突然長大了,明白了很多事情,出社會套路很多,不要被人既浪費了時間,又被「騙」了錢,你還要感謝別人。
我拿著在北大青鳥的那一套知識在51job上投了簡歷,根本不需要推薦就業,所謂的推薦就業的機會,就是推薦而已,不是你畢業之後安排你的工作,所以推薦就業也是一個營銷辭彙。然後找了很多家高薪的企業,別人都不要我,因為我的技術不足以讓我適應真正的企業的真正的技術核心,我只能去小的創業公司,經常加班,經常被罵,當時的工資只有3000多一個月的工作!我想想就不對勁, 憑什麼我投入了3萬多元,投入了1年半的時間只能找3千多一個月的工作。但是當時只能忍咬咬牙。在公司因為很多技術沒有掌握,只能自己一個人加班,被罵是常事,我當時還是抱有學生思維,以為不懂就要問的傻逼思維,碰到不懂的技術就問人,問一次可以,兩次,三次之後別人就煩了,所以慢慢的學會了碰到不懂的問題自己解決,就這樣在那家公司工作了一年半,可以說這一年半過得很不開心!
講講我第一份工作的經歷,當時我剛剛出社會,覺得一切都是那麼的不公平,看什麼都不爽,現在想起來覺得自己和可笑,當時在學校,一切那麼多的隱性資源都是免費給你使用,出社會之後,什麼都需要錢。一切關係不再是那麼單純,也許昨天做你旁邊的同事,明天就要離職,在也沒有了所謂的朋友,同學那樣,可以和你說許許多多的事情。你有能力你就上,沒有能力你就下,只有功勞,沒有苦勞,如果一件事情你加班還是沒有完成,那你也是拖後腿,因為大家都是團隊工作,不能等你一個人在拖後腿,所以所有人對你都會產生意見,甚至呵責你,訓斥你。也許你會感到委屈,但是這就是現實。
在武漢工作的過程中,曾經和別人合作個一些軟體項目,和我的小夥伴一起參加了他們的項目,從中也得到了鍛煉,當時和這家公司一起合作的時候,真的得到了很大的成長,不單單是技術上,還有眼界上,當時因為各種關係,認識到了很多有名的人。其實現在想想,如果沒有關係,一切價值都創造不出來。有時候關係顯得在中國非常重要。
無意間招聘的時候,去了一家中軟科創的IT培訓機構當講師,我當時是熱情滿滿,經常陪學生到晚上10點鐘才回寢室,因為我覺得他們和我一樣,都是找不到出路才來培訓的,所以就非常的努力帶這些學生,但是往往還是那句話,理想和現實總是有差距的,不了解人性,單憑著自己的理想主義去面對現實主義,你會摔得很慘,因為有的人並不是來學習的,只是來打發時間,或者是來拆台的,但是這群人,你沒有數據你可以量化出來,如果你想著只要自己努力教就會有效果,這種想法天真的,因為你面對的是人,人如果管理不好就是內耗,人才是最大的成本。
所以有時候當講師,你要面對的三種關係,第一種關係是你和老闆的關係,第二種:你和學生的關係,第三種:你和員工之間的關係,這三種關係中你都要達到平衡,要在這種平衡下去教學,如果你主觀的憑藉著自己認為的那樣,高估了每個學生對你的看法,那麼你會摔得很慘。
我就按照我自己這麼多年來的做技術的方式給他們上課。直到5個月之後我知道他們的招生模式,就是他們公司通過在58同城上發布求職信息,吸引求職過來面試,然後通過各種辦法說你技術不行,企業不需要你,必須要在我們這裡培訓,說什麼企業會有補助之類的話,其實就是銀行的信用貸款而已……所以果斷選擇了離職,因為我覺得太缺德了……
之後回到廣州,去了兩家IT培訓機構任教,發現他們都是以營利為目的,並沒有把教育的本質做好,因為我知道這個道理,所以去做這件事情,然後賺了錢,而不是因為我知道這個道理能掙錢,所以我去做這件事。這是兩種不同的思維方式,可能和我嫉惡如仇的性格有關,這也是我後期決定好好在培訓行業打下了思想的基石!這就是我在其他培訓任教時的照片……
這是學生給我的評價,當時學生準備教第二個階段,學生準備換老師,因為我經常陪著他們到晚上十點,幫他們解決問題,我當時為什麼要這麼做,因為他們就像我以前,為了一條出路,我想到了我以前自己在計算機這條路上,走過的艱辛和彎路,我只想讓他們少走彎路。就如此而已,包括現在我的教育模式為什麼要和學生一起住,就是為了讓他們快速的解決問題。
一路走來學了很多技術,有java、php、python、linux等等,下面就是我當前買的技術書籍啦…… 學完了這些技術,我已經沒有編程語言的界限。很多人總是說java好、php好、python好,其實並沒有什麼語言好不好,而是使用這個編程語言的程序員怎麼樣。不斷學習編程的目的就是為了有更好的編程體驗和編程格局觀。這一點很重要,因為你曾經認為是對的,隨著你不斷學習的深入,你會改變你原來認知的東西,這個非常重要。
這些就是我這七年來所學的技術,只要學了這些綜合性的技術才叫做一個合格的程序員,要不然如果你的技術點薄弱,你拿什麼技術資本在公司里立足?很多培訓學校只學習到框架方面的技術。但是linux高並發這塊的配置,對高薪就業的影響很大。但是,我很想讓學員能在半年之內學完,但是每個人的智力和接受能力真的很重要
我現在自己成立了一個培訓學校,以上是課程安排,學完之後應該具備了少走2年的技術彎路,公司里也能夠有底氣少挨罵,請你們認真看完裡面的課程安排,這些技術是非常強悍的技術,我給學生學那麼多技術,就是為了讓學生在企業中獨擋一面,在工作中少挨罵,少加班,工資能高點。
但是並不是每個學生都能有那麼強的學習能力,有時候我太高估了我學生的學習能力,有時候我想一想,來培訓的無非兩類人,第一類:高中學歷,在外面打工,沒有提升空間了,所以才來培訓,這一類人佔大多數。這一類人本身就是在學習能力上失敗的,所以學習特別慢,思維邏輯能力很差。所以當你踏入IT這一行的時候,因為你缺其他人太多東西了,但是思考能力又差,所以你必須要付出別人2倍以上的努力。有時候,學編程你會感覺到自己很無助,或者事倍功半,想放棄,那你就放棄吧。因為現在你的樣子就是你放棄了無數次的努力造成的,你也不介意在放棄一次。很多時候,別人就是多堅持了5分鐘,掌聲永遠只在成功之後。
每個人都是這麼走出來的,你的挫折什麼的,別人也經歷過,只是別人通過各種辦法走出來了,而你沒有找到一個讓你能堅持的東西,這就是人與人之間的差距。我的例子中我吃過很多的苦,我也迷茫過。當年的我在學程序,看著窗外的建築工人在打地基,我就在思考我的前途在何方?但是我還是堅持下來了,所以成為了現在的我。很多人都認為,你碰到了學程序最好的年紀,其實!我當時連程序是什麼我都不知道!
如果說在北大青鳥花一年半學的技術如果不能達到企業的標準就是騙錢騙時間。學it的人很多,你拿什麼跟別人比較,就在於你的技術能力和成長時間的長短。這都是需要成本的。跑的起點可以一樣,但是工具用的好才能成就自己走了很多技術和職場上的彎路。現在也成立了自己的培訓機構,大部分都是高中生。高中學生也能有月薪8千多一個月,所以沒有什麼不可能,難道高中的學生畢業之後就不能月薪過萬?!
教育和醫療是最後的教育底線,我們應該守護好著最後的底線,讓後來者能知道我最終的良苦用心。因為人年紀越大牽絆越多了,做什麼事情多多少少都會受到身邊人的阻礙或者是動力。是否能靜下心來編程,獲取一技之長要取決於你是如何取捨的。安心下來學習,改變自己,從來也不是年齡的問題,而是你的心之所向。
當時我們的學員很少,因為我們經過了大量的篩選,被選擇留下來的都是精英,這是早期的學員的照片,編程條件非常差……這些19-21歲的學員,他們知道自己沒有學歷,也只能靠自己的紮實的技術實力,和我傳授給他們的職場經驗在面試和工作中獲取自己的一席之地……但是他們都有一顆上進的心……他們想改變自己的人生軌跡。
自己管理了自己的IT培訓學校,同樣前期出現了一些這樣或那樣的問題,不可能每個地方都是完美的,只要大的方向不要錯誤,我就會去做。醫療和教育是社會之本!有太多名老庸醫造成無效的醫療,為之奈何?培訓機構是最後的教育底線,讓學員高質量的就業,才是首要任務!不能以忽悠,隱瞞等方式讓學員繳費報名!我想讓學生不在迷茫,看到生活的希望。這是我的希望,至於結果如何,只能盡人事,聽天命了!
先看你能不能開始並堅持學下去吧再去想工作問題。正所謂種一棵樹最好的年齡是十年前,而後是現在。不妨把一棵樹看成是一顆有理想的心。 以現在的角度看,也就是種下理想的決心應該在十年前。以未來的角度看,現在也是最好的年齡 。
既然年輕,可以試試呀。
沒看內容,直接從標題回答,來得及~
真想學能努力的話,來得及
/*我的想法是通過編程,多吃幾年苦,而且覺得編程應該是個比較有趣的職業*/不是單單想不是覺得應該還能感覺有趣就可以了
太來的及了。可以直接走 培訓班 +上班的路線。工作一段時間自己心裡就有數了。
來得及。
但凡你有其他選擇,不建議學編程。
但凡你有其他選擇,不建議學編程。但凡你有其他選擇,不建議學編程。但凡你有其他選擇,不建議學編程。但凡你有其他選擇,不建議學編程。但凡你有其他選擇,不建議學編程。但凡你有其他選擇,不建議學編程。但凡你有其他選擇,不建議學編程。但凡你有其他選擇,不建議學編程。重要的事說 9 遍來不及!來不及!這不是技工,熟能生巧,需要用腦。而且你也25了,這麼大年紀,進廠學個手藝,車工,鉗工,焊工,或者學著做做小生意,才是王道。一個大專生,我估計你連api文檔,英文注釋都看不懂!如果你20歲問這個問題,我可能會說來得及。
當然技工也要用腦,不是說技工就是簡單的活推薦閱讀:
※裸辭,找工作不順,快30該如何,是回去原來的行業還是下定決心繼續找工作轉行?
※想轉行做UI ,不知道是自學還是報培訓班。?
※互聯網從業人員如何進入投資行業?
※關於土木工程的一些疑問?
※985 211大學冷門專業放棄保研,本科畢業後行政助理類工作兩年,轉行路在何方?