腦子不聰明的男生怎麼學好軟體工程?

本人大一軟體工程新生,本來偏文一些,高考也是語文和英語分比較高高考報考出了失誤,補錄來到了東北師範大學的軟體工程。聽說軟體工程這個專業不錯,所以很想學好。但是發現這個專業對數學要求特別高,我的數學是一個要命的短板。從開學到現在基本沒啥娛樂活動,課餘時間都用來學習了,也沒見得學的多好,還是上課聽不懂,下課花時間學也學得又慢又費勁。別人都用時間練習acm了我還在線代高數里掙扎……都說聰明的人適合學軟體,那麼像我這樣很努力但是不是很聰明的還能學好軟體工程么


你要知道學校教的東西不是沒用就是很淺

所以要自學,以及不斷地練習

每年至少寫夠1W行有效代碼,造輪子,學理論,實踐


隨著歷史的發展,軟體工程越來越簡單了。

複雜的問題不斷切分並解決。

一個不斷變弱的問題,一個不斷變強的自己。

你會怎麼選擇?

***

題主的五句話裡面都或明或暗地表示了自己沒有信心。

題主才大一接觸了什麼軟體工程?ACM/ICPC那種比賽能叫軟體工程嗎?高數線代能叫軟體工程嗎?題主你還沒有搞清楚問題究竟是什麼,便帶著無助的心情與一絲冀望來到了知乎。


自古以來,大多數人總是高估了「聰明」對於學習的影響。實際上,成大事的,笨人居多。勤奮、踏實、志氣、真誠、耐心、身體強健……我認為,這些品質比「聰明」重要。典型人物:曾國藩。

以大多數人的努力程度之低,根本輪不到去拼天賦。

我認為,只要不是白痴,只要有基本的邏輯能力、記憶能力,心態、身體各方面沒有重大缺陷,都有能力通過合適的方法,堅持足夠長的時間,獲得令人矚目的成就,至少,能讓自己佩服自己。如果你的身體很棒(如長期堅持跑步、健身之類),或者心態某方面很強(平靜、敢闖敢拼、愉悅、有恆心……),學習能力上的優勢會更明顯。不僅僅是學習軟體工程,任何一門學問,任何一門手藝,都類似。

「聽說軟體工程這個專業不錯,所以很想學好。」這個動機,是遠遠不夠的。你要仔細想想,自己真正想做的是什麼,如果暫時想不到,那就多嘗試一些不同的東西——參加興趣社團;去其他專業蹭課;加入老師實驗室;向學長、學姐請教經驗。找到那個能讓你感到「死而無憾」的事業,你才會為之奮鬥得死心塌地。

舍與得

=====

大學生活不可能面面俱到。你可以選擇夯實基礎,而沒有時間去娛樂、研究具體的技術、練習ACM;你可以選擇去發展愛好,參加社團活動,嘗試各種可能性,而沒有時間關心本專業課程的學習;你可以選擇成為技術牛,花大把的時間自學,搞一個獨立項目,參加老師的實驗室,找幾個學霸組隊刷競賽,而沒有時間做作業、談戀愛……你需要自己找到一個平衡。

子曰:「君子不器。」不要自己把自己培養成一個專業性十足的機器,你首先是個人。學這個專業,不一定限制在這個專業。以我個人為例,經常看一些人文類的書,經常思考一些哲學問題,還花了很多時間加入社團學習梅花樁。獨立博客、翻牆、python爬蟲、Linux,都是自己折騰的,老師根本不教,自己讀書、看視頻、看公開課、MOOC……「學習的本質是自學。」當然,我也付出了代價,其中之一就是,大四實習了,高數掛著還沒重修。自己選的路,倒也無悔。

本專業學習的建議

=============

你說自己偏文,其實也是優勢。想過未來的職業么?如果你是程序員,寫一份漂亮的文檔,寫一段結構良好的代碼,生動形象地向他人表述你的想法……對你來說相對輕鬆。前端開發、產品經理、設計師,你感興趣嗎?或者,遊戲行業怎麼樣?三大技術崗:美術、程序(客戶端、伺服器)、策劃。你喜歡哪一個?

軟體工程專業,需要大量的動手實踐。同時,也建議多讀點本領域的經典書籍。隨便推薦幾本:《編程之道》,《禪與摩托車維修藝術》,《程序員修鍊之道》,《程序員的思維修鍊》,以及BOSS 絕的《瘋狂的程序員》……這些書大致了解就好,與具體技術關係不大。(也不會隨著具體技術的變化而過時)

另外,如果你想走得更遠,基礎真的很重要(就是本科的主幹學科)。(我的基礎挺差的)作業全部完成,門門功課90分以上?仍然不夠的,可以找國外教材認真研讀,跟幾門MOOC,協助老師做研究……同學們玩的那些花哨的玩意兒(比如APP開發、網站開發、ACM競賽),你都可以不必搭理,要堅信,一步步紮實地走下去,到最後,你將比他們牛逼得多。

如果想了解更多,可關注知乎上的很多技術大牛,比如「溫趙輪」,比如蕭井陌。

關於數學

=======

數學是一切自然科學的基礎,當然學得越深入越好。但是,你學的是軟體工程專業,不是數學專業。如果覺得吃力,只要儘力保證不掛科就行了。

至於ACM?隨便找一道題都可以把我虐翻,好吧,我承認我是菜鳥。那是高階內容,你暫時可以不用管。如果你找一份普通開發工作,也不會用到它(不管它,也是我目前的策略)。

自信心

=====

人不自信,所以總覺得別人比自己聰明。

送題主一句話:

彼人也,我亦人也,有為者亦若是。


一個剛入學北航的怒答、

一個完全0基礎的我,

代碼完全不懂,

英語口語交際還算湊活,

發散性思維,

然而最近第一次上課的時候發現全班除了我都是研發相關工作,

我特么是房押事業部小職員一枚,

昨天開始晚上刷離散數學 c的單詞 框架思維、

其實沒有聰明不聰明,

只要你肯用拉屎和擼管的時間去看代碼 看邏輯,

不出3個月你就能大概猜出來這個段落是什麼用途功能,

別擔心,別看別人多牛逼,

往下看,有內么多比你還笨的人還在學習,

你好意思接著擼么~


軟體領域,確實是一些技術大牛在引領前進,大到業界的大牛,小到公司內部的大牛。這些人是普通程序員望塵莫及的。但這些人是少數,大部分都是普通人。但有一點必須承認,程序員的平均智商是比較高的。在工作中,確實碰到有些人編程能力不行,工作很吃力,但又上了這條船,沒有魄力下去,也挺痛苦的。等著被裁掉。

我當年大學學編程時,基本是一竅不通,大三去公司實習才開始入門。後來畢業了當了個普普通通的程序員。

樓主的學校和這個專業,將來就業可能不具備優勢,如果自身能力不強,很可能沒有機會進入不錯的公司。

我和樓主相比,一是數學還行,二是當時學校的這個專業有優勢,隨大流進了一個還不錯的公司,就這樣。


其實吧!我想說本科階段除開基礎的高數,線代,概率,以及離散數學,還有計算方法和圖形學,其他都和數學沒什麼關係,重要的是要會擼代碼要會背知識點。

來自一個一心想學數學的CS學渣+學狗。

老師我們不要再寫代碼了,學數學吧。

.....此次省略1000字

老師,再不濟不要讓我寫需求分析,概要設計,還是寫代碼好不好......


@plough,非常贊同你的觀點,但根據實際情況有所不同,軟體乃至整個IT行業從目前來看薪資確實挺有誘惑力,以北上廣深及我所在的二線城市西安為例,一線城市初級就已經能達到5k+,三年到中高級就可以在10k+-15K之間,當然這些需要通過跳槽及自身能力相對突出或高於平均水準。

之後就看個人能力了,項目經理、產品經理、需求、SE、架構師、DBA,這些職位的薪資都會再有提升.......想想會不會有點小激動呢,先別忙著激動。

作為一個從底層一步一步走到現在的程序猿,來說兩句,首先幾個硬性的要求我覺得得有。

1.學習理解能力

重要的事情說三遍,技術更新日新月異,實際項目中可能用到的技術多種多樣,當然,一個人不可能學會所有的技術,也不可能運用到所有技術,但技多不壓身,大公司分工細緻,小公司體現個人能力,這是晉陞加薪等必不可少的途徑。至少目前在我看來,IT行業的晉陞通道還是相對比較公平。學習能力決定了你今後能在這個行業走多遠。

2.邏輯思維能力

不管是在具體的代碼開發,還是需求了解,亦或是架構設計,都需要較強的邏輯思維能力,個人感覺這個不好培養。我原來有個同事,女孩,邏輯思維能力較差,只能按部就班,不會靈活變通,痛苦的幹了三年,最後轉行教英語去了,現在活的很開心。

3.語言組織交流能力

語言組織能力,交流能力,對自身發展非常重要,這個就不贅述。

4.創新意識,產品意識

這個決定你在軟體行業所能站的高度

5.身體素質

這個干軟體的都應該知道,加班會多一些,身體素質必不可少

6.興趣,愛好,是否能夠去堅持

以上

如果你覺得你有這些能力,並且想在軟體行業做出成績,ok恭喜你

如果你只具備其中幾項,ok也沒問題

如果你僅僅為了有份工作,養家糊口,那麼請忽略以上所有

僅個人觀點哈


勤能補拙。這句話在寫代碼行業一樣有效。每天看幾個小時看寫幾個小時代碼。保證每天有5個小時的投入。半年後你會不會有這種疑惑了


如果實在學不好,不一定非要走純技術路線吧,看看ui設計之類,或者以後考慮轉型管理也可以,產品經理之類的工作也不錯


推薦閱讀:

有什麼好的記賬軟體嗎?
為什麼有許多軟體總是請求用戶開機自動啟動?
求薦一款適合做歷史筆記的軟體?
為什麼chrome看b站視頻全屏的時候有白條,如何去除?
用普通殺毒軟體真的對win10不起作用嗎?

TAG:軟體 | 數學 | 計算機 | 軟體工程 |