對(duì)自己的工作極度不滿意,沒有法定假日不傅,沒有雙休赏胚,經(jīng)常改變工作地點(diǎn)商虐,居無(wú)定所。目前想換工作秘车,程序猿在備選方案當(dāng)中。
程序員的工作未必有雙休(加班)割笙,未必有法定假日(加班,春節(jié)一般會(huì)休息)伤溉,未必有固定工作地點(diǎn)(是否外派),你能否堅(jiān)持板祝?如果不能走净,那么建議你放棄這個(gè)想法。
題主今年25歲伏伯,之前沒接觸過任何編程方面的知識(shí),可以說(shuō)純小白一個(gè)震檩。個(gè)人認(rèn)為學(xué)習(xí)能力還算可以蜓堕,經(jīng)過努力應(yīng)該可以快速入門的。
我見過的說(shuō)自己學(xué)習(xí)能力強(qiáng)的人多了套才,我自己上大學(xué)之前也沒有接觸過計(jì)算機(jī)迂猴,只會(huì)開機(jī)背伴,關(guān)機(jī),也是個(gè)小白息尺。我也不是科班出身疾掰,現(xiàn)在也靠代碼吃飯。
入門可以炭懊,快速入門的話看你多快了拂檩,如果你想21天學(xué)會(huì)JAVA,3個(gè)月搞定WEB開發(fā)稻励,我只能說(shuō):如果你做到了一定告訴我,我磕頭一路到你的坐標(biāo)加矛。如果你真的是什么都不會(huì),我覺得入門至少要2年左右谐鼎。
個(gè)人目前沒有什么優(yōu)勢(shì)趣惠、、味悄、侍瑟、、涨颜、非要說(shuō)優(yōu)勢(shì)的話就是敲代碼可能比較快了。目前漢字錄入速度每分鐘穩(wěn)定100+星持,全鍵位盲打弹灭。但是據(jù)說(shuō)大部分代碼都是可以復(fù)制粘貼的。逻翁。捡鱼。
打字快是個(gè)小小的優(yōu)勢(shì),大約占0.1%堰汉,因?yàn)槌绦騿T不是代碼錄入員伟墙,打字快不如知道怎么打。代碼是可以復(fù)制粘貼就乓,沒錯(cuò)。問題是小說(shuō)上的字也都是可以復(fù)制粘貼的噩翠,也沒有很多人成為作家啊邦投。
還有,不知道我25歲開始接觸算不算晚屯援,如果堅(jiān)持下去可以干到多少歲念脯。會(huì)不會(huì)對(duì)健康產(chǎn)生嚴(yán)重影響。绿店。。借嗽。转培。不會(huì)真的如傳說(shuō)那般謝頂吧。
朕現(xiàn)在40歲甲锡,還在寫代碼羽戒。干到退休很正常,國(guó)外有60多歲的同事也在寫代碼缸废。說(shuō)沒有35歲后程序員的人那是90年代驶社,那個(gè)時(shí)候求伯君等大神也就30+,程序員還沒有成為一種職業(yè)或者說(shuō)剛剛成為一種職業(yè)亡电,那個(gè)時(shí)候的計(jì)算機(jī)系畢業(yè)生大約等于網(wǎng)管。那個(gè)時(shí)候恕汇,誰(shuí)也沒有見過35歲以上的程序員。所以有此謬論枣接。
關(guān)于頭發(fā)問題缺谴,我的頭發(fā)好好的,黑又亮榆骚,每天用海X絲煌集。
請(qǐng)問想轉(zhuǎn)行當(dāng)一個(gè)程序猿需要做哪些準(zhǔn)備和學(xué)習(xí)?
1. 準(zhǔn)備一臺(tái)好點(diǎn)的電腦苫纤。建議買Dell的Latitude系列7470/7480卷拘,基本要i5以上的CPU,8G以上內(nèi)存(16G更好)栗弟,256G固態(tài)硬盤。估計(jì)市場(chǎng)價(jià)7000左右瓣蛀。
2. 準(zhǔn)備個(gè)移動(dòng)硬盤(2T左右)和優(yōu)盤(16G)雷厂,放資料。
3. 如果可以诈皿,買個(gè)24寸的顯示器像棘,對(duì)眼睛好。外加一套無(wú)線鍵盤鼠標(biāo)截歉。這個(gè)算起來(lái)1500可以買到了避除。
重點(diǎn)來(lái)了,看你能不能做到:
1. 數(shù)學(xué)和英語(yǔ)能力:
不求你有多高的水平凉逛,但是高中數(shù)學(xué)里的函數(shù)(
群井,
,三角函數(shù)诬辈,對(duì)數(shù)函數(shù)荐吉,
),數(shù)列穿撮,集合沒有還給老師吧痪欲。如果可以能掌握線性代數(shù),高等數(shù)學(xué)栗柒,離散數(shù)學(xué)知举,概率論與數(shù)理統(tǒng)計(jì)更好。英語(yǔ)里3500個(gè)基本詞匯蛙埂,各種時(shí)態(tài)遮糖,單復(fù)數(shù)等還記得吧。不懂?dāng)?shù)學(xué)屡江,你無(wú)法理解程序是怎么工作的赛不,不懂英語(yǔ),你看不懂英語(yǔ)文檔踢故。而且你要習(xí)慣用英語(yǔ)去寫東西,讀文檔耸峭。否則無(wú)法提升。
你沒說(shuō)你英語(yǔ)怎么樣院究,也沒說(shuō)你學(xué)歷本涕,所以不知道你要多久才能學(xué)會(huì)菩颖。如果英語(yǔ)不好的話,這個(gè)有得學(xué)了晦闰。
2. 計(jì)算機(jī)基本操作能力
Windows系統(tǒng)至少要掌握鹅髓,特別是命令行方式(也就是很多人說(shuō)的所謂DOS方式),如果要長(zhǎng)進(jìn)一點(diǎn)窿冯,學(xué)點(diǎn)Linux也是必須的醒串。至少要會(huì)徒手裝個(gè)Windows,裝個(gè)Linux芜赌,能幫妹子修個(gè)電腦(正經(jīng)的修)。
Windows的話我不知道推薦看什么書膘壶,反正我自己都是靠折騰(在沒有Ghost的時(shí)代洲愤,我基本1星期重裝一次系統(tǒng),最高記錄1天裝了7次)學(xué)會(huì)的亡问,靠Google和百度提升的肛宋。
Linux的話束世,建議入CentOS的坑床玻。可以看《Linux系統(tǒng)命令及Shell腳本實(shí)踐指南》入門薪丁,先看前半部分足夠了馅精。會(huì)在Linux下登錄粱檀,登出茄蚯,文件管理,用戶管理渗常,權(quán)限管理及網(wǎng)絡(luò)配置皱碘,服務(wù)管理就可以了。剩下的以后可以再看癌椿。
3. 編程語(yǔ)言
至少掌握一門主編程語(yǔ)言,可以從java入門缩功。Java可以看《瘋狂java講義》(講得比較全都办,但是深度一般)琳钉,《java核心技術(shù)(卷I)基礎(chǔ)知識(shí)》入門。
通過學(xué)習(xí)槽卫,你至少應(yīng)該掌握:
Java的基本數(shù)據(jù)類型和基本運(yùn)算符
Java的流程控制語(yǔ)句
數(shù)組
面向?qū)ο缶幊蹋侯惻c對(duì)象歼培,繼承茸塞,重載查剖,多態(tài),內(nèi)部類效扫,抽象類直砂,接口。
常用的java內(nèi)置類庫(kù)济丘,安裝 jar 包洽蛀,import/package
集合/泛型:List, Set和Map及其實(shí)現(xiàn)類,背后的原理
異常處理
IO
JDBC
這個(gè)過程會(huì)很長(zhǎng)峡碉,至少6個(gè)月以上驮审。而且你會(huì)反復(fù)的看,反復(fù)的學(xué)塔拳,不止一遍峡竣。正常情況下你會(huì)學(xué)3邊以上才能稍微有些理解。原因是很多概念只有做多了颂碧,才能有體會(huì)类浪,如多態(tài):你不理解繼承的話,你就無(wú)法理解多態(tài)诉瓦。理解了多態(tài),你會(huì)發(fā)現(xiàn)這個(gè)玩意有什么用固额,然后你看到集合后可能學(xué)著學(xué)著會(huì)發(fā)現(xiàn)煞聪,原來(lái)多態(tài)在集合里用得這么多。
如果要從事web開發(fā)啄糙,那么HTML+CSS+JAVASCRIPT也是無(wú)法避免的云稚。建議你到學(xué)習(xí)順序
HTML->CSS->Javascript
至少要掌握:
1. 盒子模型。能把你看到的網(wǎng)頁(yè)原封不動(dòng)的Copy出來(lái)桑李。如知乎的登錄頁(yè)面窿给,你能用html+css能把它高仿出來(lái)率拒,基本就可以了。
2. 常用的庫(kù)角撞,如Bootstrap勃痴,JQuery沛申。當(dāng)然Angular和React也可以試試,但是不建議你初學(xué)的時(shí)候就去練铁材。
然后你就可以練JAVA EE了著觉,從最基礎(chǔ)的JSP+Servlet開始看,然后是框架饼丘,現(xiàn)在的話基本是Spring MVC+Spring+MyBatis的框架組合了。
JAVA EE開發(fā)學(xué)的話卫病,至少要6個(gè)月。別和我說(shuō)21天學(xué)會(huì)JAVA EE村砂,那是針對(duì)有C#屹逛,PHP等其他語(yǔ)言開發(fā)基礎(chǔ)罕模,并且做過相當(dāng)長(zhǎng)時(shí)間WEB開發(fā)的人來(lái)說(shuō)的。程序員有個(gè)特點(diǎn)蒿讥,會(huì)了一種語(yǔ)言后抛腕,再學(xué)另一門語(yǔ)言往往會(huì)很快,如學(xué)了C++再學(xué)Java摔敛,學(xué)了JAVA再學(xué)C#全封,基本可以快速上手。
4. 數(shù)據(jù)庫(kù)
至少掌握一種數(shù)據(jù)庫(kù)行楞,建議從MySQL開始學(xué)起土匀。至少掌握:
1. insert, update, delete語(yǔ)句恒削。
2. select語(yǔ)句:簡(jiǎn)單的select語(yǔ)句,到關(guān)聯(lián)表钓丰,到復(fù)雜的查詢携丁±嫉。總之一句話李茫,能把人話翻譯成sql語(yǔ)句就行了。而且查詢語(yǔ)句是sql語(yǔ)言的難點(diǎn)秸侣,會(huì)了select語(yǔ)句宠互,insert/update/delete語(yǔ)句都不難予跌。
3. 數(shù)據(jù)庫(kù)設(shè)計(jì)。能把客戶要的東西變成一個(gè)數(shù)據(jù)庫(kù)券册。
5. 算法和數(shù)據(jù)結(jié)構(gòu)
至少知道常用的排序方法烁焙,再不濟(jì)也要會(huì)冒泡法排序,這個(gè)真的是太基礎(chǔ)了翠忠,大牛別嘲笑乞榨,我說(shuō)給初學(xué)者聽当娱。
數(shù)據(jù)結(jié)構(gòu)的話至少要看看鏈表跨细,棧,隊(duì)列震叙,樹散休,知道他們是怎么實(shí)現(xiàn)的。
6. 其他
1. Git划址。程序員不會(huì)Git還好意思叫程序員?建議看廖雪峰的Git教程入門痢缎,自己百度吧世澜。
2. 學(xué)習(xí),整理的能力势告,建議盡快學(xué)會(huì)用markdown格式寫作抚恒,這個(gè)快,30分鐘就應(yīng)該能掌握回溺。
希望題主能堅(jiān)持混萝,希望題主能有毅力為夢(mèng)想而努力逸嘀,希望題主5年后能感謝25歲時(shí)那個(gè)那么努力的自己。