A. 你怎麼看待程序員的高壓工作
我自己就是從事程序員工作十幾年,這確實是一份很辛苦的工作,但是也有它的意義所在。
1、這是需要人不斷學習才能勝任的工作,所以能促使大部分人養成持續學習的自覺性,讓人一直走在前進的道路上;
2、這是一份比較損耗身體的工作,所以需要工作之外做好鍛煉計劃並付諸實踐,這就促使大部分人養成一種愛鍛煉習慣與愛護身體的思維;
3、這是一份重溝通的工作,所以很多人的表達能力得到極大的改善。
B. 您好! 想問一下。美國移民EB3的問題。
EB3需要先有僱主,並且排期漫長。
除非你已經在美國,並且已經在某公司工作,否則基本上不會有公司能僱傭一個需要在很多年後才能開始工作的程序員,這個專業知識更新太快了。
換句話說就是,如果你還在中國的話,那麼通過EB3移民的可能性無限趨近於零。
C. 軟體測試分為幾個階段
一、單元測試
單元測試:單元測試是針對軟體設計的最小單位--程序模塊甚至代碼段進行正確性檢驗的測試工作,通常由開發人員進行。
對於單元測試中單元的含義,一般來說,要根據實際情況去判定其具體含義,如C語言中單元指一個函數,Java里單元指一個類,圖形化的軟體中可以指一個窗口或一個菜單等。
總的來說,單元測試是對軟體中的最小可驗證單元進行檢查和驗證。
測試原則:
1、盡可能保證測試用例相互獨立(測試用例中不能直接調用其他類的方法,而應在測試用例中重寫模擬方法);
2、此階段一般由軟體的開發人員來實施,用以檢驗所開發的代碼功能符合自己的設計要求。
單元測試的好處:
1、盡早的發現缺陷;
2、利於重構;
3、簡化集成;
4、文檔;
5、用於設計。
單元測試的不足:
1、不可能覆蓋所有的執行路徑,所以不可能保證捕捉到所有路徑的錯誤;
2、每行代碼需要3~5行代碼進行單元測試,存在投入與產出的平衡。
二、集成測試
集成測試是在單元測試的基礎上,把軟體單元按照軟體概要設計規格說明的規格要求,組裝成模塊、子系統或系統的過程中各部分工作是否達到或實現相應技術指標及要求。
集成測試包括BigBang、自頂向下、自底向上、核心系統集成、高頻集成。
三、系統測試
系統測試:系統測試是在集成測試通過後進行的,目的是充分運行系統,驗證各子系統是否都能正常工作並完成設計的要求。它主要由測試部門進行,是測試部門最大最重要的一個測試,對產品的質量有重大的影響。
集成測試和系統測試之間的比較:
1、測試內容:集成測試是測試各個單元模塊之間的介面,系統測試是測試整個系統的功能和性能;
2、測試角度:集成測試偏重於技術的角度進行測試,系統測試是偏重於業務的角度進行測試。
四、驗收測試
驗收測試也稱交付測試,以需求階段的《需求規格說明書》為驗收標准,測試時要求模擬實際用戶的運行環境。是針對用戶需求、業務流程進行的正式的測試,以確定系統是否滿足驗收標准,由用戶、客戶或其他授權機構決定是否接受系統。
驗收測試包括alpha測試和beta測試,alpha測試是由開發者進行的軟體測試,beta測試是由用戶在脫離開發環境下進行的軟體測試。
D. 開發小程序前期需要做好哪些准備工作
1、.選擇開發模式
目前小程序有兩種開發模式,一是自己開發,二是找專業的開發服務商來開發。如果選擇自己開發,就需要招聘前端、後端、設計、測試等人員,盡快把開發團隊建立起來。
如果選擇外包,那就要對准備合作公司做一個考察,例如對方的實力、口碑、專業程度,有無成功案例等等。如果這家開發公司,有過大型企業開發的經驗、案例,那就可以將其作為合作對象。
2.做好產品定位
在小程序開發之前,一定要考慮清楚,做小程序的原因是什麼?想要通過小程序實現什麼?然後結合行業特徵、企業特色、產品賣點、目標人群等,做好小程序的定位工作。
3、確定好需求
在定位工作做完之後,接下來的工作就是確定一下需求。例如,功能、頁面、內容、圖片等。在確定好這些需求之後,應當把需求都整理成一份文檔,方便後期與開發人員溝通、交流
4、提交需求
在確定好開發方式之後,接下來的工作,就是將前面已經整理好的需求文檔交給相關人員。在提交完需求時,應當與相關人員確認所有細節,以免影響開發進度。
E. 程序員是怎麼被逼瘋的
本來是個很早寫的3個贊的答案,不知怎麼回事又被大家點了起來:D
再補充幾個:
老闆:給你超級高薪,年薪十萬,給我做個微信出來!
老闆:買毛伺服器啊,我就要手機端就行!!!
老闆:(半夜3點半,電話)別睡了!有bug!趕緊打車來公司!!!
PM:我們要做一個用戶系統,猿猿,你估一下工作量,給個排期吧!
PM:沒有需求文檔,你就照著微信做個一模一樣的就行!
PM:這是Boss說的,必須改!你問他去!
PM:deadline,deadline……
QA:那誰,有50個bug還沒修,盡快處理!真是的!
燙
F. 程序員每天都是怎麼過的
早上十點半到單位,花五分鍾寫一下今天的工作計劃,去飲料機買飲料,喝快樂水,打開電腦,看看群里有沒有人反饋bug,沒有繼續翻牆看看國外的新聞。大概十一點多了,群里討論下中午吃什麼,十二點下樓,下午一點回來玩手機+午睡。睡到兩點,起來揉揉眼睛再買個飲料,兩點半開始寫代碼,寫到4.30,兩個小時寫完一天的任務。剩下的時間就測試,休息一下,學習新技術,想想怎麼賺錢,提升自己。六點吃完飯。回來7點,繼續學習,八點下班。出去喝一杯小酒或者奶茶回家。做兼職,學習。睡覺!
G. 作為一個程序員,選擇哪些兼職比較好
接私活
大多數程序員想要在業余的時間掙點錢,第一想到的就是它,畢竟這是程序員本職的工作。但問題是哪裡找私活?私活該怎麼定價?這里大家優先選擇熟人推薦的,比如你的朋友、同事、或者同事的同事等等。他們所在的公司可能剛好需要這樣的私活需要找人做,比較靠譜。其次去各大外包網站尋找,很多技術網站都有人發布一些私活項目,網上搜索下就會找的到。那麼私活該怎麼定價?首先肯定是不能比你的工資低,不管是按時薪算還是月薪算,因為對於程序員來說你的業余時間比你工作時間更寶貴。
但這種接私活的方式並不是很推薦,自己最開始工作的時候有接過一個私活,但是後來就沒做了。因為太累了,而且費心。如果你遇到僱主不是從事互聯網的人,有可能連他自己的需求都理不清,就開始叫你做。做到一半的時候,又重新改需求。並且有時候做完的私活,尾款難以收到。
錄制視頻課程
現在在線教育大家越來越能接受,不管是網上的免費課程還是收費課程,總有受眾人群的。所以這就是衍生了一種賺外快的方式,就是錄制視頻課程。一般錄制的課程分為兩種:免費課程和收費課程。免費課程是按照課程時長來算,一般至少是每小時 1000 - 2000 塊,不同的網站與不同的課程級別,價格有浮動,但是這個時長是按照最後剪輯的市場,也就是說,最後剪輯的 1 小時課程,你很可能錄制了 2、3 小時。當然,一開始錄制會比較麻煩些,但是一旦上手了,後面錄制就會比較快了,一般來說,每月靠錄制課程賺個 5、6 K 是沒有問題的。
還有一種是收費課程,但是收費課程一般都尋找一些大公司 title 好聽的,或者有點名氣的。因為這樣才能吸引用戶付費購買。收費課程除了錄制課程費用,還有一定的提成,提成標准每家也都有所不同。如果你能力還不錯,去錄制一些免費課程應該沒問題,如果你在業界小有名氣,那隻要你願意,那肯定是沒有問題。
自媒體
如今自媒體如日中天,以今日頭條為首的自媒體平台非常的多。有的人玩今日頭條年收入 50 萬,有的人月收入一萬。當然那些人都是全職在玩今日頭條,但對於我們來說,利用業余時間每個月賺幾千還是很輕松的。就已今日頭條來說,你過了新手期,就會自動幫你開通頭條廣告。也就是說你以後發布的文章、視頻、圖集只要有閱讀量就會有收益。今日頭條視頻一萬點擊量的單價是在 3-4 元左右,如果你開通原創之後一萬點擊量單價則高達 10-12 元。
H. 程序員到什麼時候才能月入三萬
不積跬步,無以至千里;不積小流,無以成江海。三萬在畢業生眼裡就是夢想,不同的人實現這個夢想可能時間不同。有的人天生麗質,有的人龜兔賽跑,硬體軟體都不一樣,所以會有差別。一說程序員,大家想到的就是編程,其實要達到三萬水平,有很多方面都需要提升。據我觀察,我們GS(知名互聯網GS)達到這個水平的人具有以下能力:1.編碼能力超強至少精通一種語言,了解兩三種。基本的功能模塊,隨手就來。2.對自己負責模塊的架構已深入骨髓對負責模塊的架構相當的熟悉,增加功能模塊,定位問題手到擒來。3.能夠帶領一個團隊完成任務能夠帶領一個團隊完成任務,主要是體現在團隊管理上,合理的分配任務,合理的排期,按時完成。4.出現疑難問題時,能夠hold住並解決對於一些偶現問題或者崩潰,能夠藉助軟體或者工具定位問題所在並解決。俗話說的疑難雜症。(這種能力對提升你的影響力很有幫助。)5.具有快速學習能力兩周內能夠快速學習一種語言或者模塊。6.單兵作戰能夠單獨負責一個模塊的開發任務。其實達到這個水平也不難,只要你踏踏實實,一步一個腳印的走,摒除一切雜念,五六年足矣。
I. 在大家眼中,程序員是一個怎樣的職業
為什麼有人在技術造神
大家應該已經感受到,技術圈這兩年已經和娛樂圈創業圈差不多的氛圍了,這其實是有原因的。
最主要的原因是,創業公司和創業媒體越來越多,他們需要大量的程序員投身到創業這個高風險的行業中,而造神,正是讓程序員們自動跳進火坑的絕佳辦法。不是說程序員不能創業,我是說,創業媒體們故意模糊了創造和創業的界限,把程序員們的創造沖動偷換概念,鼓吹了太多不適合的人去創業。
另一個原因是,招聘成本高漲,CTO 們為了能提升影響力,不得不頻頻出席各種大會刷臉。文筆好的再做做自媒體和技術社群,既能強化個人品牌提高身價,又能在融資的時候提升成功率。
總之,這個行業出現了各種技術大神。
這些大神在普通人類和初級程序員眼裡是無所不能的,是他們嚮往的目標;在中級程序員和高級程序員眼裡,這些大神就是他自己,只不過他還沒紅起來而已…
於是攀比心理也開始泛濫,全國第三的架構師比比皆是,整個圈子漸漸就浮躁起來。
然而絕大部分程序員,依然是雇員
媒體們在包裝時,最喜歡按獨立開發者的路線來整。「從小就對技術有天分」、「大學時曾在某編程大賽一鳴驚人」、「寫了個 APP 玩結果一個月有了千萬用戶」、「從公司離職自立門戶三年上市」。
OK,這的確是程序員的一條職業路線圖。但是媒體們不願意告訴你的是,一:只有極少數程序員是通過這個路線成功的;二:這條線其實需要太多非程序員職位的技能,比如產品設計能力和銷售能力。
程序員的價值決定
絕大部分互聯網公司的程序員職位,沒有技術門檻
然而不幸的是,絕大部分互聯網公司都不是技術驅動的公司。真的就是鳥哥說的那樣,絕大部分技術崗位,其實技術門檻都不高(門檻在工程上,後文細講)。技術不過是這些公司的護航艦,而不是破冰船。
先別打我,冷靜下來想想,到底有多少你會的那些技術,是你的同行們不會的呢?不多,對吧?
幾年前億級別的搜索還是問題,現在已經到處是通用解決方案了;幾年前千萬到億級別的網站和 APP 解決方案還在大公司手裡,現在各個架構大會都講爛啦,而且其實都差不多;就連 DeepLearning,帶 API 介面的框架也開始涌現,只需要把圖片用 REST 傳進去就能取到結果了。
很多事情,已經沒有難度,只需要持續投入。是的,對絕大部分程序員來講,他們不需要成為科學家,而需要成為工程師,成為從科學家手裡接過火種,去燎原大地的人。
怎樣才是一個好工程師
工程的本質不是創造,而是去風險化。
工程是關於如何低成本、高效率、按時按量完成既定任務的。所以判斷一個工程師是否優秀,並不是他多有創意多有名氣,而是看他有多穩,看他能多 GettingThingsDone,中文就是「靠譜」。
有時候一個好的解決方案,未必採用了最新的技術和框架,而是看上去朴實無華,功力都包涵在背後的細節里。就像頂尖高手打的斯洛克檯球,每一桿都平淡無奇,只是因為上一桿的回球太到位。
有同學問,那我工程做的太好,豈不是沒有機會遇到一些高難度挑戰了么?放心,一般公司都僱傭了產品經理來幫你製造高危事件。
同樣的,一個好的工程師,會選擇最適合需求和團隊的方案,考慮開發效率和系統效率的均衡,從而已達到最優效果;而不是整天和別人去爭論什麼語言最好、哪些框架過時了。
工程的另一個要求是進度控制和質量控制。
在項目立項之後動工之前,對要做的事項作出詳盡的規劃,對未來一到兩周的工作給出細致的排期,這是進度控制的基礎。
代碼的及時入庫與合並,自動化測試和每日構建,CodeReview 和文檔編寫,這些看似無關緊要的習慣則決定了項目質量。
不幸的是,很多程序員把這些工程上至關重要的東西當成垃圾,視為對他們「創造力」的壓抑。
他們總是以創造力為借口去尋求自身的自在,比如上班不帶胸牌不打卡,中午休息時間在公司看視頻打游戲,最好可以遠程上班,項目到期之前再來檢查進度,公司不要用統一框架,只有傻逼才寫文檔。
對職業的理解偏差和工程能力上的荒蕪,培養了大批能寫代碼但死活寫不好代碼的「碼農」,反而讓那些有著彪悍工程能力和良好習慣的程序員變得奇貨可居。
最後,來說說程序員那無處安放的創造力
有了錘子想找釘子是很正常的原始沖動,但我們必須認識到,創造力對於程序員這個職業來講,是錦上添花的東西。如果你沒有強大的工程能力,那麼創造力也不過是無本之木。所以扎扎實實的把工程基礎打好,這是最根本的。
在此基礎上,我比較推薦程序員採用內外兩條線來培養自己。在公司內的項目上採取相對保守的策略,盡力把穩定性做到最好,培養出自己卓越的工程能力;然後在公司外的開源項目和自己的獨立項目上,採用一些新的技術、實踐一些新的想法、充分發揮自己的創造力,夢想還是要有的,對吧。
這樣做最明顯的好處是,你可以了解到新技術和激進方案的優缺點,從而在進行方案選型時,有更多的依據;還有一個職業發展上的好處:如果不是主負責人,公司的項目往往不能代表你的能力;但獨立項目卻可以作為一個非常好的能力證明出現在你的簡歷里邊。
你可以是一個身懷絕技的手藝人,在自己家裡你嘗試各種手法各種風格的個人作品;但當你參與頤和園這種級別的工程時,好好的把自己負責的石頭雕成總設計師要求的樣子就好 —— 畢竟這個時代一個人已經很難負責整個項目了。這就是我所理解的程序員的工匠精神。
J. 作為程序員,我是怎麼月入三萬
不積跬步,無以至千里;不積小流,無以成江海。
三萬在畢業生眼裡就是夢想,不同的人實現這個夢想可能時間不同。有的人天生麗質,有的人龜兔賽跑,硬體軟體都不一樣,所以會有差別。
一說程序員,大家想到的就是編程,其實要達到三萬水平,有很多方面都需要提升。據我觀察,我們GS(知名互聯網GS)達到這個水平的人具有以下能力:
1.編碼能力超強
至少精通一種語言,了解兩三種。基本的功能模塊,隨手就來。
2.對自己負責模塊的架構已深入骨髓
對負責模塊的架構相當的熟悉,增加功能模塊,定位問題手到擒來。
3.能夠帶領一個團隊完成任務
能夠帶領一個團隊完成任務,主要是體現在團隊管理上,合理的分配任務,合理的排期,按時完成。
4.出現疑難問題時,能夠hold住並解決
對於一些偶現問題或者崩潰,能夠藉助軟體或者工具定位問題所在並解決。俗話說的疑難雜症。(這種能力對提升你的影響力很有幫助。)
5.具有快速學習能力
兩周內能夠快速學習一種語言或者模塊。
6.單兵作戰
能夠單獨負責一個模塊的開發任務。
其實達到這個水平也不難,只要你踏踏實實,一步一個腳印的走,摒除一切雜念,五六年足矣。