諮詢一下軟體工程的詳細細節?

媽媽的同事說軟體工程只是一個工具,像如果編程機床程序還要學機床的知識,所以不建議我報這個專業,不如報機電一體化和電子信息類,而且說軟體工程收的分這麼低是個陷阱,因為對編程類完全不了解,所以求各位大佬解答


中國的軟體工程不是原教旨的軟體工程,也就是半自費(後兩年學費x2)的CS而已。

至於教學計劃,理論CS那部分,只要是好學校,無論CS和軟工,還是互聯網工程還是信安,都會講的,本來也沒多少門課。對於垃圾一點的學校,無論它們開的是CS 還是軟工還是什麼,基本都是講框架和 API。

希望大家不要拿有色眼鏡去看軟體工程這個**專業**。

機電怎麼樣我不好說,但是前兩次工業革命的紅利必然要少於第三次。

以上。


我是學軟體工程的,我覺得軟體工程這門學科很有意思。

軟體工程是研究軟體的工程化實踐的,一大課題就是讓通過流程化的方式(比如寫文檔,測試)使得軟體開發不依賴於特定的軟體開發人員,坦率的說有些讓軟體工程師成為螺絲釘的效果。

而大部份學軟體工程的學生最後都成了軟體工程師,而一個牛逼的軟體工程師,應該算那種離了他系統就沒法維護的工程師。對於隨時可替換的工程師,想必能開出的薪水也就那樣。

這真是一個很諷刺的專業,我也是工作後才發現的這一點。最諷刺的一點是,如果你要成為一個公司離不開的軟體工程師,按軟體工程書上的「最佳實踐」去逆向實踐就是了。

當然,在工作中,我只管寫自己的代碼,不會刻意去追求什麼讓公司離不開之類的。只是,偶爾,我會想,我大概上輩子做了什麼不好的事,所以這輩子先學軟體工程然後再做軟體工程師吧。有些學過《資本論》之後進了富士康這樣被命運戲弄的感覺。


原教旨主義軟體工程講的是如何帶領一隊低質量碼農人高質量(指的不是代碼質量,想想豐田的一萬多個全局變數)完成企業軟體的這麼個過程。當然其中的一些片段也可以適用於整個軟體業的其他部分。學這個東西,去非互聯網公司的話,將來就是從產品經理往領導層爬的意思。

至於你媽說的話,完全是一些正確的廢話,你可以不參考。因為給機床編程序(不包含開發機床本身)的人,幾乎是不受到原教旨主義軟體工程的管理的,所以你沒辦法在那種地方發揮你的專業知識。

當然了,你以後也可以選擇專業不對口的崗位,那都是你的自由。


你媽的同事並不懂什麼是軟體工程。

收藏夾里的第一個,互聯網職業介紹,看完再對比一下你媽同事的答案。


這麼說吧我來介紹一下軟體工程的一些課程安排好了 。

大一的話,會以一門編程語言作為新手的入門語言,同時會有大部分的數學方面的基礎,如數學分析,概率論,線性代數等。

然後大二了就會逐漸進入到計算機學科的基礎知識,比如操作系統,資料庫,計算機組成,計算機網路,編譯原理這些東西。

大三的話會進入到軟體工程的相關知識,包括IT項目管理,軟體測試,人機交互等和真實的項目開發有關的知識。

同時學校也會提供一些選修課供你們選擇,這些選修課有可能會成為你最終的實習或就業的方向選擇。基本上,除非你個人選擇了嵌入式相關的發展方向的話,你是不怎麼可能成為一名開發機床相關程序的人員的。更多的會是進入到互聯網行業或金融行業從事各種各樣的編碼(廣義上)工作,從前端開發,到後端開發,從移動端開發到PC端開發等。除了應用開發外,你還可以成為人工智慧,數據挖掘,圖像處理,雲計算等方面的人才。

不用擔心自己沒怎麼了解過編程方面的知識就會落後於人,除了那些特別牛批的---從小學,初中,高中就開始接觸代碼的人來說,大部分的新生都處在同一起跑線上,所以加油咯。


自己的興趣是什麼就報什麼,軟體工程是一個概念和建築工程一樣,不是什麼工具。作為一個現代人不懂點編程真的有點out了。不管你做什麼工作都應該有點編程的思想,為什麼呢,因為有些重複性的事情完全可以讓機器去處理。


我就是軟體工程的學生

不知道題主的細節指的是什麼呢?

我把我學的課程和將要學的課程發一下吧(有關的,思修體育什麼的就不發了)

-------------------------------------------------------------------------------------------------------

大一:

高等數學,程序設計基礎(C語言),計算機導論,大學英語

離散數學,專業認知實踐,面向對象程序設計(C++),信息檢索與數據挖掘

大二:

概率統計,線性代數,數據結構,數據邏輯課程設計,數字邏輯電路設計,軟體工程導論,軟體系統開發設計

文獻檢索技術,電工電子學,計算機組成原理,資料庫系統原理,JAVA程序設計,面向對象建模技術

大三:

計算機網路,操作系統設計,C#程序設計,演算法設計與分析,信息安全原理

JSP開發技術,操作系統,計算方法,編譯技術,XML編程技術,

J2EE與中間件,服務計算概論,軟體測試技術

大四:

需求工程,設計模式,項目管理技術,流媒體技術,人機交互,生產實習,畢業設計論文

-----------------------------------------------------------------------------------------------------------

說說我的看法:

先說工具:

如果按題主家裡人所講,那機電學到的知識,電子信息學到的知識是不是也可以看作是工具?

那我自己編程寫出來的工具,豈不是比別人的用的更順手?

拿了毛筆就一定能寫出好書法嗎?有螺絲刀就能維修嗎?拿個電錶就能設計出電路嗎?其實不然,背後都有其他的方面,不能只看冰山一角.

我覺著編程不僅是工具,更是一個不斷學習進步的過程,這個工具可以幫你實現大多數你想完成的事,如果你是學軟體的,拿到需求書和參數也許就可以給機床開發,但會操作機床可不一定能給機床編程.更關鍵的是,這是一個很接近科技前沿的學科,像機器學習這些東西其他專業可搞不出來

題主可以翻翻專業,有多少專業能離開軟體?

生活中無論是你的手機還是外面馬路上的路燈,那個又能離開軟體?

我想題主既然這樣問,心裡肯定也是有答案的,跟著內心的答案去吧

這可能是軟體工程在知乎上被黑的最慘的一次


那是你媽同事完全不懂抽象層的概念。

硬體千奇百怪,但給硬體加個操作系統,比如在Windows上你就用Windows提供的SDK編程,在安卓上你就用安卓SDK編程,而不需要知道硬體的細節。在操作系統上加個Java虛擬機,你就用Java的SDK編程,而不需要知道操作系統的細節。

所以對碼農來說,掌握你吃飯的那個抽象層的SDK的API調用就行了,而不是要了解全部的實現細節。比如你想要讓你手上的手機震動,調用SDK給你提供的介面Vibrator.vibtate() 就行了,就是這麼簡單,高中生培訓機構培訓幾個月也能勝任碼農的工作,99%的編程工作都不需要腦子。

當然這是遠遠不夠的,軟體工程和計算機專業的基礎課程就是讓你了解計算機軟硬體的全部細節,比如操作系統、編譯原理、計算機組成原理、計算機網路、數據結構和演算法、資料庫等等。這些課程最初都是從國外頂級大學抄來的,學好它們也非常不容易,比如學操作系統就讓你實現一個可以運行的微型系統,學編譯原理就得實現一個特定語言的編譯器,學資料庫就得實現一個DBMS...編碼實踐非常多死記硬背基本沒有。大多數學校大多數學生也都學不好,比如我,然後還是當個碼農,干高中生就能幹的調API的活。但希望題主如果讀了軟體工程不要像我這樣,每一門課程都能使人受益匪淺。


選擇軟體工程,很大程度上表示你選擇了很多行業。

這裡以企業級開發舉例:

要做好一個系統,首先你就要對企業有充分了解,工作流程、業務流程、甚至財務流程············如果企業高大上(追求高度信息化) ,說不定還要定製在線會議系統、定製企業內部通信系統。

你給一個企業搞定這些解決方案,意味著你已經對他十分了解。

如果你十分勤勉,一年搞定一個企業,幾年後你就是了解很多行業的程序員。

還記得以前我們老師講的:軟體開發不是一個行業,是千千萬萬個行業。

一直覺得有點狗血,現在想來,有點道理。


學軟體工程然後給機床編程當然需要學習機床的知識。從機床編程方面來說,可能真的是機電一體化好一點。

但是你真的想(只)給機床編程?


簡單說下我學校的軟體工程學可以作為參考。

首先我讀的大學是二本,如果比較介意可以不看。

主要學習方向是編程,大一入門語言C語言,然後學習Java進而學習JSP。這是學校的主要培養方向(還有一個方向是學Android,我不清楚)。學習高數、離散數學、概率論、數理統計。有軟體工程、計算機網路等課。計算機方面跟計科專業有點不同,不學數電模電,學Linux編程(用的Redhat)、SQL資料庫、操作系統、編譯原理等等。數據結構演算法分析這個貌似學計算機都要學(我學校電子專業也要學)。

就業方面學校學的東西是很重要的基礎,需要學的很好,同時要在大學選擇自己的方向去學習,至少我的學校說的是Java方向,實際上自學的東西還有很多。方向選擇就是自己的事了,比如你聽你媽的同事的話去給機床寫代碼那就要去學機床的東西(話說我第一次聽說軟工畢業可以去給機床寫代碼。。。)如果你想選擇前端工程師方向,那在我學校的話基本上所有的東西都要自學。

找工作上,由於我並沒有畢業所以不談。實驗室師兄有人去隔壁某985校招(這個我也不知道具體情況)。

你媽的同事感覺根本不了解軟體工程,收分低一部分情況是有的學校確實這個專業是最渣的,感覺大部分情況是因為學費高(我學校4年平均一年1萬,其他學校大致如此),分數自然就下去了。至於收費問題我沒研究過,不評論。機床編程那個,我怎麼感覺是在黑啊,話說你就準備上完學出來給機床編程么?明顯是搞機床的需要學編程,並不是學編程的出來必須搞機床,你媽的同事可能是從搞機床的同志那裡認識的軟體工程的(


聽你媽的。


本來軟體工程(偏向實際操作/工程)和計算機科學與技術(偏向理論)是有區別的,但是很多學校(比如我的學校)並沒有能體現出來(或者體現的不明顯),私以為這兩個專業的最初的劃分是為了擴招。


軟體工程嘛,一群人蒙著眼睛在一間沒有燈的黑屋子裡抓一隻並不存在的黑貓,有人說抓到啦……


軟體工程專業也算是計算機科班了,計科專業學的軟工基本也學,而且比計科還多了實習,只看分數和學的東西的話,性價比還是挺高的,分數足夠建議去行業內比較知名高校,大連理工,電子科大,北郵之類的,當然,一般學費也很高(滑稽


軟體工程專業和軟體工程學不是一回事,後者只是前者的一門課而已。其實主要學的還是編程,跟計算機專業類似。


要詳細了解軟體工程?

聽人說說當然也行,但既然涉及到選專業關乎未來走向,我的建議是,你親身感受一下。

——我倒是好希望當初有個人能這麼善意地提醒我一波≥﹏≤

軟體工程包含的範圍無比寬廣,如果你的目標瞄準進軍學術界,那麼直接把它看成是數理化一類的東西就行,想像一下作一個「科學家」的滋味,與實情八九不離十。

但如果是瞄準求職進入工業界的話,顯然可以軟體工程師的工作可以簡略概括為 語言-工具-項目,最後的項目就是軟體工程師的價值產出。

想親身感受一下工業界的軟體工程師都過著什麼樣的生活也非常簡單,找一台電腦,去網上搜索「150行寫出flapping bird」或是「200行Java代碼寫出貪吃蛇」的視頻教程,裝好環境跟著教程一步一步擼一遭代碼就可以了,最悲觀的情況下總過程耗時6-8小時吧。


我是學軟體工程的,現在做web相關

大一學C,大二學彙編,大三學java sql

當然大學四年我都沒好好學,上面說的哪些東西我連皮毛都沒學會,就知道有這麼個東西

現在回過頭來看用的最多的是sql,偶爾要用的是設計模式

畢業了之後我同學有一部分是寫java的,一部分是寫sql的,大部分都去干別的事情了

看題主幾個標籤我覺得這專業還行,不管是要做移動端、web,還是桌面程序,都是有用的

如果真的奔著就業的話,選專業還不如選一個靠譜的培訓機構


歡迎來光電,光,機,電,一體化都學


我只知道一部分微電子方向也在軟體工程里,至少研究生里是這樣,滑稽


推薦閱讀:

如何讓自己成為物聯網行業的精英?
現在的互聯網為什麼不採用無線電而採用光纖進行數據的傳輸?
網紅真的有那麼紅么?你能隨口說出一個網紅名字么?
如何評價搜狗發布的語音交互引擎「知音」?
30到40年後,世界會有什麼新的改變讓現在的我們無法適應?

TAG:互聯網 | 信息技術IT | 軟體工程 | 大學專業 | IT行業 |