-
1 # 使用者1925776433876
-
2 # 武狂
學軟體開發?那可不是鬧著玩的。不從事這一行的永遠不知道這行的艱辛,還咋巴著小眼睛問程式設計好不好學?
不知道LZ看沒看過聖鬥士星矢這部動漫,首先你得問問自己,想學程式設計,你有沒有像星矢一樣持之以恆百折不撓一步一個腳印忍受常人無法想象的困難和痛苦的品質,沒有?你說我開玩笑逗你,那好,下面的不用看了,因為你確實不適合學。
如果你只想著掙大錢,勸你別碰這行,一句話,別來找虐。為什麼?你看到的手機APP,各種應用,要想開發出來,不知道需要多少種技術。拿最常見的網站開發,需要後臺資料庫mysql,資料格式json,xml,各種網路協議,還有網站開發語言PHP, JSP,ASP.NET,等等不下十幾種技術。而每一種技術都是一本厚厚的五六百頁的書,需要最少一年多時間掌握一門技術。最要命的,每種技術互不交叉還跨度很大,每種技術都有自己的設計理念和很多很多“天坑”在等著你攻克,你問問你自己,你有這個恆心和意志力天天捧著本大部頭的書天天看,天天上機操作學嗎?你說有,那好,你看電視上那些富二代天天瀟灑地到處遊玩泡妞基本於你無緣了,因為你根本就沒時間,談個戀愛都困難,還想打網遊玩王者?那算了,你還是別碰這行了,別耽誤你玩遊戲享受生活了。
程式設計師加班很恐怖,工作制通常是996,即早9晚9週六還要上班,晚9下班還是早的,一般到晚上十點。你想那時夜深人靜了人家都休息抱著老婆孩子睡覺了,你還在工作中,是不是很崩潰?
第2,程式設計師耗腦太嚴重。工作中需要十幾個小時大腦不停地運轉。需要設計算法,不斷地把程式碼改來改去來適應客戶一天幾變的需求。很多功能沒有現成的解決方案,還經常遇到一些天書一樣的疑難問題,bug,實際工作中突發狀況千奇百怪,你可能見都沒見過的bug,崩潰,需要一點一點查幾萬行的log日誌。而且也需要百度,google,英文論壇尋求幫助,理解錯誤資訊是什麼意思。所以英文不好的沒耐心的還是算了吧,不適合這行。
第3. 程式開發首先是非常難學的,任何一門程式語言都有自己獨到的思想,概念設計,很多情況下一門語言與另一門語言沒有多大關係,知識經驗無法串用。而且工作中你還不得不用到這些技術你不得不去學。而且程式技術日新月異,新類庫新SDK每天都會推出,你需要日復一日不斷地學習新技術。如最新影片解碼技術,遊戲引擎等等,而這些新技術可是國內沒有書和任何資料的,需要你到英文官方網站去找例項看文件去學,更要命的,新的技術和老的還沒太大關聯,你得重頭去學。而且老闆急趕專案不會給你什麼時間,一般三天就是極限了,你需要這麼短的時間快速掌握一項新技術...
綜上,你明白程式設計師為什麼總要加班了吧,也知道這行不是人乾的吧。為什麼說程式設計師幹到三十干不動。很簡單,以這種消磨人生所有時間狀態,你生命中只有加班加班工作工作學習學習,你將不能顧家不能跟朋友聚會不能再有自己一點點休閒時間,更別說談女朋友戀愛了,以這種狀態你能堅持到三十歲?我想那簡直是個奇蹟了
回覆列表
沒有基礎的人,如何學習軟體開發? 軟體開發之路是充滿荊棘與挑戰之路,也是充滿希望之路。軟體學習也是如此,沒有捷徑可走。 今天我們來談談如何學習,希望大家"不走彎路,就是捷徑"。 一般學習軟體開發都會首先學習一門語言,Java被稱為最好的面嚮物件語言,讓我們來看看Java的學習路線。 1 基礎語法及JAVA原理 基礎語法和JAVA原理是地基,地基不牢靠,猶如沙地上建摩天大廈,是相當危險的。學習JAVA也是如此,必須要有紮實的基礎,你才能在J2EE、J2ME領域遊刃有餘。 2 OO思想的領悟 掌握了基礎語法和JAVA程式執行原理後,我們就可以用JAVA語言實現面向物件的思想了。面向物件,是一種方法學;是獨立於語言之外的程式設計思想;是基於元件開發的基礎;屬於強勢技術之一。現在還有AO技術。是OO技術的一種補充。 3 基本API的學習 進行軟體開發的時候,並不是什麼功能都需要我們去實現,也就是經典名言所說的"不需要重新發明輪子"。我們可以利用現成的類、元件、框架來搭建我們的應用,如SUN公司編寫好了眾多類實現一些底層功能,以及我們下載過來的JAR檔案中包含的類,我們可以呼叫類中的方法來完成某些功能或繼承它。那麼這些類中究竟提供了哪些方法給我們使用?方法的引數個數及型別是?類的構造器需不需要引數?總不可能SUN公司的工程師打國際長途甚至飄洋過海來告訴你他編寫的類該如何使用吧。 4 開發工具的用法 在學習基礎語法與基本的面向物件概念時,從鍛鍊語言熟練程度的角度考慮,我們推薦使用的工具是Editplus/JCreator+JDK,這時候不要急於上手JBuilder/Eclipse等整合開發環境,以免過於關注IDE的強大功能而分散對JAVA技術本身的注意力。過了這一階段你就可以開始熟悉IDE了。JAVA開發使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等幾種;而Eclipse、JBuilder佔有的市場份額是最大的。 5 學習開源軟體的設計思想 JAVA領域有許多原始碼開放的工具、元件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive論壇、PetStore寵物店等等多如牛毛。這些可是前輩給我們留下的瑰寶呀。入寶山而空手歸,你心甘嗎?對這些工具、框架進行分析,領會其中的設計思想,有朝一日說不定你也能寫一個XXX框架什麼的,風光一把。分析開源軟體其實是你提高技術、提高實戰能力的便捷方法。 6 不侷限於JAVA JAVA不要孤立地去學習,需要綜合學習資料結構、OOP、軟體工程、UML、網路程式設計、資料庫技術等知