如何從ACM轉向開發?

如題。。之前一直做的是ACM,但是即將轉為開發的時候發現自己什麼都不懂。。比如:如果我有一台伺服器,我要怎麼建起來一個網站,域名怎麼解析上去,或者我要怎麼開發一個項目。。。請問各位有什麼好的學習資料嗎??

突然發現自己很可悲,似乎除了刷題對其他的一竅不通。


大多數知友肯定都懂我下面說的這些,但是可能覺得是常識了所有沒人提出來。為什麼可能很多人回答你,卻感覺大家說的好像都不太一樣?其實大多數都沒錯,可能題主還是有疑惑,只能說明問題是題主的確問的太寬泛了。辣么多語言,處理方式肯定不同,就算是同一個語言,框架不同又不一樣....

我目前正在這個階段:ACM–&>J2EE 我想題主不僅僅是想去搭個網站吧?你要學的很多。簡單說下吧,手機碼字。 1你得選個語言,得選個框架。很不幸啊,搞ACM的主要是用c++(你不會是那5%的java黨吧?),可是c++與網站無緣(初步),咋辦?想快速開發,短期有項目成果首推LAMP,Linux+Apache+Mysql+PHP,因為都是開源的,而且作為一個ACMer,你很有可能已經熟悉前2-3個組件,最主要學的也就是php了,很巧,語法入門對於你來說會非常快。對於小型網站類似於個人博客已經足夠了,可參考wordpress,不過不知道題主是要具體幹嘛。 2另一條路,j2ee走的是另一套流程,熟練使用java的話也可以考慮這個路線。具體我就不說了,路線參考:傳智播客j2ee學習路線,自行百度。 3剩餘的其他路線我一起講吧,(1,2是我推薦的)走c#微軟這一套,我承認微軟很牛逼,但是我不太感興趣(面相控制項編程23333,不對,人家很好用的好伐)。不多說;python+任意一個python框架,推薦django,為什麼推薦這個?我也不知道啊,別人這麼推薦我的,但是國內python屬於小眾語言,小心以後混不好餓死,但近幾年看下語言排行python可能還能進前十;ruby on rails,據說很多java web的程序員逐漸湧向這個方向,不過。。。ruby比python還要小眾,優點是開發周期短。 4很多東西都要學啊,你精通stl,你能手寫紅黑樹,你還能平衡那棵已經被封裝的二叉樹,但是沒啥用啊,短期真沒用啊;html+css+javascript你得花點時間學完,不過對你來說這些前端語言很簡單,因為你已經搞過acm了,推薦:慕課網關於這三個的教程;http協議得學吧,無論走什麼路線,協議是一樣的,找篇文檔或者博客先看看吧,用到了不要一無所知;如果你連域名和ip之類的常識不知道的話。。我也無能為力了。
再補充點身為一個acmer對於做項目,網站有什麼幫助吧。首先反對這麼一個觀點:acm轉什麼都很快。這很不負責任,為什麼這麼說,因為人們眼中的acmer很優秀,感覺上手什麼都很快。我覺得是因為優秀的人去做了acm,而不是acm使你多麼優秀,所以如果是只有演算法+數據結構,那真沒有什麼地方可以說叫:上手什麼都很快。就我周圍的隊友來說:有精通linux的,玩轉各種伺服器的etc.平時題目刷累了或者厭倦期了我都會選擇去拓展廣度,其實開發網站只是acmer轉行的一個選擇。你去看看python的爬蟲,花三天學完基礎python語法,花兩天研究爬蟲,把某xx網站(捂臉)的種子+圖片全爬下來,並且分享給了好友。在學期開始時你可以利用python+request把全院同學的學分績點爬取並且計算總評,節省老師和班長的時間。同時讓你了解http協議,什麼是request,response。後來你發現一個事實,python也可以開發網站,而這時你只需要選擇一個框架!我相信,這就是優勢,我會用map+set優化我的爬蟲代碼減少代碼量,我想c++有這些常用數據結構,python也應該有吧,果然他有;我要排序,沒經歷acm,我估計還在冒泡;Iterator我一下子就能知道怎麼用...
學習資料從哪兒獲取?對於第一種選擇,LAMP這太方便了,通!通!都是開源的!你甚至可以讀源碼。但咱要快啊,推薦文檔(包括書,博客,官方文檔)+視頻(直接清晰),慕課網(或傳智博客)+官方文檔+百度+谷歌足矣,夠你入門了。j2ee我也還在學,我是參照傳智播客視頻在學,配合head first servlet and jsp(head first系列是我一位前輩極力推薦的)。剩下的大同小異,網上資源很多,私以為光是百度就可以滿足題主了,那麼多博客。
先說這麼多吧


裝個hustoj
來fork個分支
幫忙debug
寫個新皮膚
做個JAVA版web部分
做個手機端


找個願意接受沒什麼工程經驗的acmer的單位,然後去上班咯…


魚與熊掌不可兼得?我覺得大一大二去刷題,大三大四玩開發,研究生搞研究寫論文再合適不過了。


搞acm的轉應用還不是小菜一碟, 網上一搜教程多的是。


淘寶搜一下就知道搭個能run的網站很多人會,目光放遠點吧。計算機三大神功:數據結構與演算法、系統結構、軟體工程,修好了再談應用。資料可以到豆瓣找找。


推薦閱讀:

開發者應選擇 MacBook Pro 還是 XPS ?
老外沒法正確發出"Yu"這個音,我是不是該取個英文名字?
你對PHP絕望的時刻是什麼?
有了 IP 地址,為什麼還要用 MAC 地址?
跪求拯救哥這IT屌絲,嘴笨+情商低+獃子?

TAG:程序員 | 演算法 | 編程 | ACM競賽 |