-
1 # 隨筆閒談渾沌事
-
2 # IT小村
筆者是2019年校招進京東集團的軟體開發工程師,即所謂的程式設計師,來回答這個問題再適合不過了。看了回答的各種必須是計算機專業、參加培訓機構等慘不忍睹的答案,覺得有必要來回答一下。
(1)什麼是程式設計師?
程式設計師其實是一個很廣泛的概念了,程式設計師主要參與技術研發,而技術研發又分為硬體研發程式設計師和軟體研發程式設計師兩大方向,軟體又分前端開發程式設計師、後端開發程式設計師和安卓開發程式設計師等,後端開發有根據開發語言分為具體的Java開發程式、Python開發程式設計師等,Java開發程式設計師又分......上圖吧
從外人來看,程式設計師是
(2)怎麼學習成為程式設計師?
成為程式設計師,我覺得興趣第一。程式設計師要學習的技術十分眾多,還得學得十分紮實,而且技術更新迭代十分快,得保持十足的持續學習熱情。所以呢,沒有興趣愛好支撐,你是很難入門程式設計師的,還很難持續的做下去。
其次,學習的話,給自己定一個目標,目標儘量的細,就跟你小學寫作文立題目一樣。程式設計師是一個龐大的概念,只有從一個細微的點切入,才能在其中做得格外專業,在社會立足。比如筆者,幾年前想成為一個Java程式設計師,便開始搜尋Java相關的知識,從最基礎的JavaSE入手學習,其次再涉及web方面的內容JavaWeb,接著接觸企業開發常用的技術框架SpringBoot等等,一路走下來....
其他的方向類似,以此類推。
-
3 # 牛經歲月
什麼是程式設計師這個問題可大可小,從大了說是0和1的數字世界中的研究者和科技改變生活的創造者,是程式碼和現實的聯接者。往小了說是碼農?一個職業,一個謀生的工作。但不論怎麼定義,即便你只是想成為一名初級的程式設計師,相關的專業知識也是不可缺少的,這其中至少至少要掌握以下三大塊內容中每塊內容的一部分,你才有可能參與到真正的程式開發專案中去。
一、常用語言及開發工具
開發工具就不在這裡贅述,因為一旦你選擇了使用哪語言,都會有對應的相關開發工具需要去學習,不同語言自己習慣的、適用的開發工具了有不同。下面介紹幾種目前常用的語言供大家參考:
1.C語言。執行效率高底層驅動,結構式程式碼及資料分割化,指標面向過程可移植性好,適合於多種作業系統,但可重用性差資料封裝不好會導致安全性差,資料結構改變時,所有相關的處理過程都要進行相應的修改
2.C++。面向物件開發,可擴充套件性好,效率高指標+物件,可重用性(繼承和多型性)多用於作業系統軟體的開發、嵌入式開發、Android APP的NDK開發、遊戲開發
3.c#。c#是.net的代表語言支援分散式:處理過程分佈在客戶機和伺服器上多執行緒,面向物件
4.Java。面向物件,沒有指標,多執行緒,跨平臺,分散式語言虛擬機器方式,效率低,但自動管理記憶體和自動垃圾回收編譯後成為一種IL(中間語言),執行時,再把IL編譯為平臺專用程式碼多用於Android APP開發,Hadoop開發,TensorFlow開發
5.PHP。面向物件的開源指令碼語言變數在頁面執行完畢後被清空多用於中小型web應用開發(Linux+Apache+MySQL+PHP)
6.Python。既支援面向過程又支援面向物件,具有良好的移植和擴充套件性開源性好,但速度不是非常快多用於物聯網平臺開發,web開發,圖形處理
7.其它除了這些主要語言來說,想成為一個合格的程式設計師,還必須瞭解常用的語言知識,通常包括:Javascript,node.js,JSON,XML,HTML,Ajax等二、常用資料庫
簡單來說,資料庫是按照資料結構來組織、儲存和管理資料的倉庫,學習資料庫知識時除了要學習資料庫本身以外,我們還需要學習和資料庫息息相關的SQL語言,這是程式設計師操作資料庫資料的基石。
1.Oracle。Oracle 公司產品支援最廣泛的作業系統平臺。目前Oracle 關係資料庫市場佔有率有率名列前茅。ORACLE 是最早提出基於標準SQL 資料庫語言的關係資料庫產品之一,1979 年問世,近二十年來融匯了資料庫的各種先進技術,在小型機及微型機的關係資料庫系統領域,佔有舉足輕重的地位。自第五版起,支援客戶/伺服器和協同伺服器,目前最新版本是1998 年推出的ORACLE8.0 。具有相容性, 可移植性, 可聯結性,高生產率。還具有以下特點:(1)名符其實的大型資料庫: ORACLE 建立的資料庫,最大資料量可達幾百GB;(2)共享SQL 和多線索伺服器體系結構:這兩個特性的結合,減少ORACLE 的資源佔用,增強處理能力,能支援成百甚至上千個使用者。(3)跨平臺能力: ORACLE 資料庫管理系統可以執行在100 多個硬體和軟體平臺上,這一點為其它PC 平臺上的資料庫產品所不及。(4)分散式資料庫:可以使物理分佈不同的多個數據庫上的資料,被看成是一個完整的邏輯資料庫, 儘管資料操縱的單個事務可能要運行於多處地點, 但這對應用程式卻是透明的,應用程式開發人員的感覺就好象所有的資料都是物理地儲存在本地資料庫中。(5)卓越的安全機制:包括對資料庫的存取控制,決定可以執行的命令,限制單一程序可用的資源數量以及定義資料庫中資料的訪問級別等。(6)支援客戶機/伺服器方式,支援多種網路協議。
2.SQL Server。Microsoft 公司推出的SQL Server 資料庫管理系統,具有使用方便可伸縮性好與相關軟體整合程度高等優點, SQL Server 2是一個全面的資料庫平臺,使用整合的商業智慧(BI) 工具提供了企業級的資料管理。SQL Server資料庫引擎為關係型資料和結構化資料提供了更安全可靠的儲存功能, 使您可以構建和管理用於業務的高可用和高效能的資料應用程式。SQL Server資料引擎是企業資料管理解決方案的核心。此外SQL Server 200結合了分析、報表、整合和通知功能。這使您的企業可以構建和部署經濟有效的BI 解決方案,幫助您的團隊通過記分卡、Dashboard、Web services 和移動裝置將資料應用推向業務的各個領域。
3.MySQL。由於其體積小、速度快、總體擁有成本低, 尤其是開放原始碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL 作為網站資料庫。MySQL 是一個多使用者、多執行緒的關係型資料庫管理系統。工作模式是基於客戶機/伺服器結構。目前它可以支援幾乎所有的作業系統, 包括:Win95 、Win98 和NT 以及Unix 等作業系統。MySQL已經成為當前網路中使用最多的資料庫之一,特別是在Web 應用上,它佔據了中小型應用的絕對優勢。這一切都源於它的小巧易用、安全有效、開放式許可和多平臺, 更主要的是它與PHP 的完美結合。MySql 是一個開放的、快速的、多執行緒的、多使用者的SQL 資料庫伺服器。具有六大特點:(1)開放性(2)多執行緒(3)支援多種API(4)跨資料庫連線(5)國際化(6)資料庫容量大
三、開發框架
簡單來說開發框架是一個可複用的設計元件,它規定了應用的體系結構、依賴關係、控制流程和協作,為開發複用提供了良好的基礎。使用開發框架後開發的效率、程式的健壯性和效能都會提高。但開發框架種類繁多,而且開發框架和所使用的開發語言密切相關,所以無法在這裡一一說明,以下只例舉幾禁WEB開發中常用的開發框架供初學者參考。
1、Spring 。 Spring是於2003 年興起的一個輕量級的Java 開發框架,是一個開放原始碼的設計層面框架,他解決的是業務邏輯層和其他各層的鬆耦合問題,因此它將面向介面的程式設計思想貫穿整個系統應用。簡單來說,Spring是一個分層的JavaSE/EE full-stack(一站式) 輕量級開源框架。
2、SpringBoot 。 Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。簡單來說,就是spring boot其實不是什麼新的框架,而是Spring的一個升級版,它預設配置了很多框架的使用方式,使得開發變得更加簡單。
3、Mybatis。MyBatis 是一款優秀的持久層框架,它支援定製化 SQL、儲存過程以及高階對映。MyBatis 避免了幾乎所有的 JDBC 程式碼和手動設定引數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和對映原生資訊,將介面和 Java 的 POJOs(Plain Old Java Objects,普通的 Java物件)對映成資料庫中的記錄。
4、Hybernate。Hibernate是一個開放原始碼的物件關係對映框架(Object_Relative DateBase-Mapping 簡稱ORM),它對JDBC進行了非常輕量級的物件封裝,它將POJO與資料庫表建立對映關係,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程式設計師可以隨心所欲的使用物件程式設計思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程式使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的JaveEE架構中取代CMP,完成資料持久化。要做一個合格的高水平的程式設計師,
以上所提及的專業內容是遠遠不夠的,而且相關內容的知識更新也是日新月異,所以想在程式設計師這個行業中立足,需要不斷的更新自己的知識,不斷的學習,同時經過大量的實踐才能立於不敗之地。看了上面的內容,現在大家是不是有點明白程式的收入不敢說有多高,但確實還行了吧!
-
4 # 水煮大鍵盤
程式設計師就是從事軟體程式開發、程式維護的專業人員。
在大型的IT公司從業者工種分工相對比較明確,包括軟體或系統設計師,前端UI,前端網頁開發師,後臺服務開發師(又包括初級,中級,高階,系統架構師等),測試人員,運維人員,資料庫工程師等。
就拿造一輛汽車舉個不恰當的例子,軟體或系統設計師是在圖紙上設計汽車外形,寫設計說明書;前端UI是設計汽車顏色,造型;前端網頁開發師負責製造騎車外形,車燈,玻璃等等外部要素;後臺服務開發師是生產、製造、組裝汽車發動機、變速器等等內部零件;測試人員負責測試完工的汽車;運維人員負責修理和售後服務;資料庫工程師負責製造生產汽油。例子不恰當但工種及流程差不多這樣。但現實工作中領導都會要求你最好是全棧式開發工程師,什麼是全棧式呢?你把上面的活都幹完就是了。
行業狀況:中國目前不缺程式設計師,但缺中高階程式設計師。很多人是為了高薪而來的,但程式設計師是一個需要不斷學習的職業(正常情況下每天都需要學習),這方面技術真的大如海,新老技術更新換代也太快。
工資與工作年限關係不是太大,主要看技術,當然 面試時可以吹牛的,但入職後打不打臉就要看個人了。正常兩三年技術工資能達到10到15K,視公司而定。加班是正常的,996也是正常的,ICU有可能也是正常的,要不怎麼對得起那工資(這是很多公司領導認為的,可不是我說的)。
如何成為程式設計師?
為什麼要做程式設計師,是嫌女朋友煩嗎!
如果真想從事IT工作的話,一是高考報計算機相關專業,二是其他專業的通過自學或報班培訓(培訓費用很高的,而且教學質量參差不齊),三是當初不屑於上大學的如果有興趣又不缺錢的話也可以學,但通過它找工作的話有難度,這行要求大專以上學歷,不找工作有能力的話可以自己接活做自由職業者,但也有難度。
回覆列表
編寫程式程式碼的人是程式設計師唄,作為程式設計師那必定要會敲程式碼啊,各種程式語言c、python、java等至少得會一種吧,自學或者報培訓班,高薪職業程式設計師你值得擁有[機智]