導航:首頁 > 源碼編譯 > 程序猿編譯器

程序猿編譯器

發布時間:2022-12-29 23:57:35

A. 新手如何學習編程

熟悉以下關鍵東西,可以邊學邊做,定期訓練,經常思考,長期積累:

1、語法。

2、基礎理論(數學、數據結構、演算法等)。

3、設計方法(編程原則、設計模式、框架設計等)。

4、庫(核心、基礎、UI、擴展、游戲引擎等)。

5、計算機相關(操作系統、網路、圖形學等)。

6、領域知識(游戲設計、網站設計等)。

7、開發工具(編輯器、IDE、自動部署等)。

8、項目管理(進度管理、分工協作、Bug管理、版本控制等)。

最普遍也是最重要的能力:創造力。努力分析並理解好做什麼以及怎麼做。要知道上面那些東西一開始都是不存在的。

具體方法包括:

1、快速閱讀入門教程和書籍,適合學習語言和基礎庫。比如我學java讀的《Java編程思想》,練習題做過一點,然後學ActionScript就沒讀過書,只讀過Adobe官方文檔《ActionScript 3.0編程》。

2、閱讀庫的文檔、實例、源碼。比如Flash、Flex開發,熟悉官方API很重要,很多細節要具體使用時才注意到,這時候最好做個筆記,雖然我從沒看過我的筆記。

3、做一個自己感興趣或熟悉的小項目,比如我就以黑白棋游戲作為多個語言的試水項目,一樣的邏輯,便於把關注點放在語言特點上。

4、自己動手豐衣足食。廚師有菜譜,程序員可沒菜譜。比如我做游戲,最關鍵的游戲編程知識全部是動手學出來的,很少有專門針對某個業務領域(如游戲)的編程書籍,要麼是入門書,要麼是模式書(如演算法)、理論書(圖形學),很少有書籍教你如何開發一個45度角地圖系統加編輯器的,全靠自己思考,以及看前人的代碼,需要時找些網路資料。關鍵是,可以培養最重要的創造力。

對於演算法和設計模式,可以研讀下,但是關鍵還是靠平時如何使用了。新手勉強不來的。

項目管理方面的,就得靠工作經驗了,多思考多提意見不要只走流程。

B. 程序猿專用十大在線編譯器(IDE)整理

1. CodeSandbox(基於 React 的在線代碼沙盒平台) 我常用的

① 主流的腳手架都支持,比如在線create-react-app,vue-cli等(在線 fork 修改),支持 github 登錄(項目導入),也支持 cli 上傳例子,例子可以在線訪問和下載,當然也支持內嵌到其他博客等網頁中。

② 地址:https://codesandbox.io/

③ 圖示

2. CodePen(前端代碼編輯運行的網站)

① CodePen 是一個完全免費的前端代碼託管服務,主要功能有:

② 地址:https://codepen.io/

③ 圖示

3. JSRUN(支持手機端的在線JS編輯器)

① jsrun是一款支持手機端的在線JS編輯器, HTML/CSS/Javascript在線代碼運行工具,js代碼在線測試調試,是runjs的升級版支持vue.js/angular.js的在線編輯器

② 地址:http://jsrun.net/

③ 圖示

4. jsFiddle(前端代碼編輯運行的網站)

① jsFiddle 是一個Web開發人員的練習場,可在線編輯和測試 HTML、CSS、JavaScript代碼片段。在 jsFiddle 編輯的代碼,可以保存,也可分享給其他人,還可嵌入到其他網頁

② 地址:https://jsfiddle.net/

③ 圖示

5. Ideone(C和C++的在線編譯和調試工具,支持其他的60種語言) 我常用

① Ideone是C和C++的在線編譯和調試工具,支持其他的60種語言。這個工具提供許多強大的功能,允許程序員快速高效的編譯源代碼

② 地址:https://www.ideone.com/

③ 圖示

6. Codechef(C,C ++和Java的在線編譯工具)

① 它支持C,C ++和Java,非常接近真正的桌面IDE。這是超快速和易於使用。適合於課堂和作業的學生,練習面試問題。

② 地址:https://www.codechef.com/ide

③ 圖示

7. JDoodle (C,C ++和Java的在線IDE)

① 支持協作代碼。它只是從一個簡單的文本區域開始,您可以粘貼代碼,然後單擊運行。您可以更改命令行參數並在運行該程序之前設置stdin。最適合新的在線編輯器不支持的許多舊語言。

② 地址:https://www.codechef.com/ide

③ 圖示

8. OnlineGDB (在線C,C ++,Java,PHP編譯器) 我常用

① 它支持C,C ++,PHP和Java編譯器。OnlineGDB的獨特功能是,您可以逐步調試您的代碼。一旦代碼被寫入,它可以很容易地格式化,使其看起來不錯。

② 地址:https://www.onlinegdb.com/

③ 圖示

9. GCC資源管理器

① GCC編譯器資源管理器是一個互動式在線編譯器,它顯示編譯後的C++、RISE、GO(以及更多)代碼的匯編輸出。

② 地址:https://gcc.godbolt.org/

③ 圖示

10. plnkr edit在線編輯器

① js的在線編輯器。

② 地址:http://plnkr.co/edit/

③ 圖示

C. 程序猿編寫代碼的時候創建一個新文件會在第一行自動注釋作者和時間,

sublime編輯器當然可以,不過不是自動插入,需要你設置快捷鍵,比如ctrl+shift+.

具體做法如下:
1、創建插件:
Tools → New Plugin:,在彈出的文件中輸入以下內容
import datetime
import sublime_plugin
class AddInfoCommand(sublime_plugin.TextCommand):
def run(self, edit):
self.view.run_command("insert_snippet",
{
"contents": "/**""\n"
" * @Author: xxx""\n"
" * @DateTime: " "%s" %datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") +"\n"
" * @Description: Description""\n"
" */"
}
)

保存為Sublime Text 3\Packages\User\addInfo.py
2. 創建快捷鍵:
[
{
"command": "add_Info",
"keys": [
"ctrl+shift+."
]
}
]

D. 剛入職的Java程序員應該注意什麼

最早學習的應該是HTML/CSS/JS(前端頁面),這部分內容你能夠去上面的那個runoob網站上找。你能夠試著自己寫一些頁面,當然,你能夠盡你最大的竭力讓它變得最美麗。 動力節點的java就業班學學,它們深圳校區剛開不久

E. 軟體工程研究生之後就業方向

游戲開發游戲,Web開發Web開發包括前端開發和後端開發兩大崗位,程序猿,從事軟體開發等。


知識擴展:

什麼是軟體工程。

軟體工程是一門研究用工程化方法構建和維護有效、實用和高質量的軟體的學科。它涉及程序設計語言、資料庫、軟體開發工具、系統平台、標准、設計件有電子郵件、嵌入式系統、人機界面、辦公套件、操作系統、編譯器、資料庫、游戲等。同時,各個行業幾乎都有計算機軟體的應用,如工業、農業、銀行、航空、政府部門等。這些應用促進了經濟和社會的發展,也提高了工作效率和生活效率 。

軟體工程是研究和應用如何以系統性的、規范化的、可定量的過程化方法去開發和維護軟體,以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來的學科。它涉及到程序設計語言、資料庫、軟體開發工具、系統平台、標准、設計模式等方面。

F. 求大神,程序猿 程序媛 能夠把vi編譯器的全部命令發給我

vim是vi的升級版,使用基本相同,如下:

  1. vim的使用
    vim的配置需要修改配置文件,配置文件位於/etc/vim/vimrc,要修改配置文件需要使用root許可權打開

  2. 打開vim vim
    打開的同時創建新文件 vim filename
    vim有三種工作模式:普通模式,插入模式,命令模式
    只有在插入模式中才可以進行輸入,進入插入模式的命令:
    i:在游標之前插入
    a:在游標之後插入
    o:在下一行進行插入
    如何退出:
    :q!強制退出,步保存退出
    :wq 保存退出
    復制粘貼:
    復制:yy
    粘貼:p 粘貼到游標所在行的下一行
    多行復制:num+yy 11yy 復制11行
    剪切粘貼:
    剪切:dd 剪切之後如果步粘貼就相當於刪除
    多行剪切:num+dd 11dd 剪切了11行
    撤銷操作:u
    快速定位:
    快速定位到文件首:gg
    快速定位到文件尾:G
    快速定位到某一行:
    文件沒有打開的情況下:
    vim filenam +1200
    打開後直接定位在第1200行
    文件打開的情況下:
    +1200
    以當前游標為起點,向後移動1200行 註:-1200時,步能表示向前移動1200行,這是需要按gg回到文件首,然後按照前面的向後移動
    查找內容:
    向後查找:/查找內容
    向前查找:?查找內容
    查找下一個:n
    分欄操作:
    水平分欄:
    在打開的文件情況下,輸入 :split filename 或者 sp filename
    可以在同一個vim窗口中水平分割顯示兩個文件
    使用Ctrl+ww 切換游標在上下兩個文件
    要一次性退出兩個文件 :wqa
    要一次性保存兩個文件 :wq
    垂直分欄: vs 或 vsp 或 vsplit filename 垂直分割顯示兩個文件或多個文件

G. 怎麼樣讓c++編譯器 不區分大小寫字母

原來在Unix下文件名符號名什麼的都是區分大小寫的。C是服務於Unix的工具,自然也是區分大小寫。後來出現了一個奇葩就是微軟的Dos,處處和Unix對著干。文件名不區分大小寫,Unix常用的路徑分割符正斜杠也變成了反斜杠... 當然後來的Windows以及微軟的VB都遵循這個哲學。

那麼當我們使用C和C++時就要回到Unix的哲學上來了。必須要大小寫敏感。
不過你實在不爽的話,也可以自己修改編譯器。gcc是開源的,可以任意修改。

H. 現代C/C++編譯器有多智能

最近在搞C/C++代碼的性能優化,發現很多時候自以為的優化其實編譯器早就優化過了,得結合反匯編才能看出到底要做什麼樣的優化。
請熟悉編譯器的同學結合操作系統和硬體談一談現代c/c++編譯器到底有多智能吧。哪些書本上的優化方法其實早就過時了?
以及程序員做什麼會讓編譯器能更好的自動優化代碼?
舉個栗子:
1,循環展開,大部分編譯器設置flag後會自動展開;
2,順序SIMD優化,大部分編譯器設置flag後也會自動優化成SIMD指令;
3,減少中間變數,大部分編譯器會自動優化掉中間變數;
etc.
查看代碼對應的匯編:
Compiler Explorer
【以下解答】
舉個之前看過的例子:
int calc_hash(signed char *s){ static const int N = 100003; int ret = 1; while (*s) { ret = ret * 131 + *s; ++ s; } ret %= N; if (ret < 0) ret += N; //注意這句 return ret;}
【以下解答】
舉個簡單例子,一到一百求和
#include int sum() { int ret= 0; int i; for(i = 1; i <= 100; i++) ret+=i; return ret;}int main() { printf("%d\n", sum()); return 0;}
【以下解答】
話題太大,碼字花時間…
先放傳送門好了。
請看Google的C++編譯器組老大Chandler Carruth的演講。這個演講是從編譯器研發工程師的角度出發,以Clang/LLVM編譯C++為例,向一般C++程序員介紹理解編譯器優化的思維模型。它講解了C++編譯器會做的一些常見優化,而不會深入到LLVM具體是如何實現這些優化的,所以即使不懂編譯原理的C++程序員看這個演講也不會有壓力。
Understanding Compiler Optimization - Chandler Carruth - Opening Keynote Meeting C++ 2015
演示稿:https://meetingcpp.com/tl_files/mcpp/2015/talks/meetingcxx_2015-understanding_compiler_optimization_themed_.pdf
錄像:https://www.youtube.com/watch?v=FnGCDLhaxKU(打不開請自備工具…)
Agner Fog寫的優化手冊也永遠是值得參考的文檔。其中的C++優化手冊:
Optimizing software in C++ - An optimization guide for Windows, Linux and Mac platforms - Agner Fog
要稍微深入一點的話,GCC和LLVM的文檔其實都對各自的內部實現有不錯的介紹。
GCC:GNU Compiler Collection (GCC) Internals
LLVM:LLVM』s Analysis and Transform Passes
========================================
反模式(anti-patterns)
1. 為了「優化」而減少源碼中局部變數的個數
這可能是最沒用的手工「優化」了。特別是遇到在高級語言中「不用臨時變數來交換兩個變數」這種場景的時候。
看另一個問題有感:有什麼像a=a+b;b=a-b;a=a-b;這樣的演算法或者知識? - 編程
2. 為了「優化」而把應該傳值的參數改為傳引用
(待續…)
【以下解答】
推薦讀一讀這里的幾個文檔:
Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X
其中第一篇:http://www.agner.org/optimize/optimizing_cpp.pdf
講解了C++不同領域的優化思路和問題,還有編譯器做了哪些優化,以及如何代碼配合編譯器優化。還有優化多線程、使用向量指令等的介紹,推薦看看。
感覺比較符合你的部分需求。
【以下解答】
一份比較老的slides:
http://www.fefe.de/source-code-optimization.pdf
【以下解答】
利用C++11的range-based for loop語法可以實現類似python里的range生成器,也就是實現一個range對象,使得
for(auto i : range(start, stop, step))
【以下解答】
我覺得都不用現代。。。。寄存器分配和指令調度最智能了
【以下解答】
每次編譯poco庫的時候我都覺得很為難GCC
【以下解答】
有些智能並不能保證代碼變換前後語義是等價的
【以下解答】
誒誒,我錯了各位,GCC是可以藉助 SSE 的 xmm 寄存器進行優化的,經 @RednaxelaFX 才知道應該添加 -march=native 選項。我以前不了解 -march 選項,去研究下再來補充為什麼加和不加區別這么大。
十分抱歉黑錯了。。。以後再找別的點來黑。
誤導大家了,實在抱歉。(??ˇ?ˇ??)
/*********以下是並不正確的原答案*********/
我是來黑 GCC的。
最近在搞編譯器相關的活,編譯OpenSSL的時候有一段這樣的代碼:
BN_ULONG a0,a1,a2,a3; // EmmetZC 註:BN_ULONG 其實就是 unsigned longa0=B[0]; a1=B[1]; a2=B[2]; a3=B[3];A[0]=a0; A[1]=a1; A[2]=a2; A[3]=a3;
【以下解答】
提示:找不到對象
【以下解答】
忍不住抖個機靈。
私以為正常寫代碼情況下編譯器就能優化,才叫智能編譯器。要程序員絞盡腦汁去考慮怎麼寫代碼能讓編譯器更好優化,甚至降低了可讀性,那就沒有起到透明屏蔽的作用。
智能編譯器應該是程序猿要較勁腦汁才能讓編譯器不優化。
理論上是這樣的。折疊我吧。
【以下解答】
編譯器智能到每次我都覺得自己很智障。
【以下解答】
雖然題主內容里是想問編譯器代碼性能優化方面的內容,但題目里既然說到編譯器的的智能,我就偏一下方向來說吧。
有什麼更能展示編譯器的強大和智能?
自然是c++的模版元編程
template meta programming
簡單解釋的話就是寫代碼的代碼,寫的還是c++,但能讓編譯器在編譯期間生成正常的c++代碼。
沒接觸過的話,是不是聽上去感覺就是宏替換的加強版?感覺不到它的強大呢?
只是簡單用的話,效果上這樣理解也沒什麼
但是一旦深入下去,尤其翻看大神寫的東西,這明明看著就是c++的代碼,但TM怎麼完全看不懂他在干什麼?後來才知道這其實完全是另外一個世界,可是明明是另外一個世界的東西但它又可以用來做很多正常c++能做的事....
什麼?你說它好像不能做這個,不能做那個,好像做不了太多東西,錯了,大錯特錯。就像你和高手考試都考了100分的故事一樣,雖然分數一樣,但你是努力努力再努力才得了滿分,而高手只是因為卷面分只有100分.....在元編程面前,只有想不到,沒有做不到。
再回頭看看其他答案,編譯器順手幫你求個和,丟棄下無用代碼,就已經被驚呼強大了,那模板元編程這種幾乎能在編譯期直接幫你「生成」包含復雜邏輯的c++代碼,甚至還能間接「執行」一些復雜邏輯,這樣的編譯器是不是算怪獸級的強大?
一個編譯器同時支持編譯語法相似但結果不同卻又關聯的兩種依賴語言,這個編譯器有多強大多智能?
寫的人思維都要轉換幾次,編譯器轉著圈嵌著套翻著番兒地編譯代碼的代碼也肯定是無比蛋疼的,你說它有多強大多智能?
一個代碼創造另外一個代碼,自己能按照相似的規則生成自己,是不是聽上去已經有人工智慧的發展趨勢了?
上帝說,要有光,於是有了光。
老子曰,一生二,二生三,三生萬物。
信c++,得永生!
===
FBI WARNING:模板元編程雖然很強大,但也有不少缺點,尤其對於大型項目,為了你以及身邊同事的身心健康,請務必適度且謹慎的使用。勿亂入坑,回頭是岸。
【以下解答】
c++11的auto自動類型推斷算么....
【以下解答】
智能到開不同級別的優化,程序行為會不同 2333
【以下解答】
這個取決於你的水平

I. hello world對於程序猿是有什麼深刻意義的嗎

hello world表示你開始接觸IT軟體開發行業或者一個新技術的起點。
就像開發裡面的類、方法的駝峰命名規則一樣。自然而然的就喜歡用hello world來做示例

閱讀全文

與程序猿編譯器相關的資料

熱點內容
現代鋼琴教程pdf 瀏覽:23
客戶端框架源碼 瀏覽:206
python自動辦公能幹嘛 瀏覽:873
程序員追愛 瀏覽:252
程序員邏輯故事 瀏覽:768
加密icsot23i2c 瀏覽:713
你們有什麼好的解壓軟體 瀏覽:607
常州空氣壓縮機廠家 瀏覽:241
安卓如何關閉app內彈出的更新提示 瀏覽:409
e4a寫的app怎麼裝蘋果手機 瀏覽:201
海立壓縮機海信系 瀏覽:210
社保如何在app上合並 瀏覽:220
小米加密照片後綴 瀏覽:236
我的世界網易手機怎麼創伺服器 瀏覽:978
載入單頁源碼 瀏覽:930
阿里雲伺服器seo 瀏覽:777
海洋斗什麼時候上線安卓 瀏覽:86
中行app如何查每日匯款限額 瀏覽:840
輸入伺服器sn是什麼意思 瀏覽:725
sha1演算法java 瀏覽:90