❶ 程序員是如何找項目練手的
首先,你能想到平時找項目來進行練手,說明你是一個在技術上面是一個非常上進的同學。 想要找到項目進行練手,第一個想到的地方應該是 Github。Github 上擁有全球最多的開源項目,你可以從其中找到自己感興趣的開源項目,然後參與到開源項目的開發中去。 能夠參與開源社區,這也是很多互聯網公司非常看重的一點。
其次現在也有很多舉辦計算機類比賽的平台,比如阿里雲的天池大數據、Kaggle、Datacasle等。 你如果有時間,可以參與上面舉辦的比賽,進行項目練手。
想要在 Github 上面找到自己想要參與的開源軟體,首先你要確定好自己對什麼技術方向感興趣。 比如對於我來說,我對實時計算非常感興趣,所以我找了很多開源的實時計算引擎,最後選擇了 Flink 開源項目,現在也在努力的參與到 Flink 的開發中去。想要使用開源項目來進行練手,你一定要確定好自己的技術方向,找到感興趣的開源項目,接著就是嘗試參與到其中。
確定好自己感興趣的開源項目後,第一步就是去訂閱官方社區的郵件組,在社區的郵件組裡面,你可以看到很多同學對於開源項目的問題以及解答,你未來有任何問題時,也可以在開源項目郵件組中進行提問。 其次,你可以去開源項目的官方網站,將裡面的官方文檔閱讀和理解一遍,這對於你未來 API 的使用和概念的理解,會有很大的幫助。
最後,你可以去開源項目的 JIRA(問題主頁),查看自己能解決哪些 JIRA,隨著你解決的問題越來越多,我相信你的能力也會提升的越來越快。
其他方面,你也可以去阿里雲的天池大數據等平台上面查找自己想要參與的比賽,上面的比賽主要以演算法類比賽為主,但也有性能優化相關,編程類的比賽項目。 我以前在上面參加過阿里中間件的比賽,但是還是和同學一起來進行參加,一路跟著做下來,自己的能力也提升了很多,而且在校招的時候,面試官也問了很多這方面的問題。如果你能夠跟著比賽做下來,我相信你肯定能夠得到一定的收獲。
我會持續大數據、資料庫方面的內容,如果你有任何問題,也歡迎關注私信我,我會認真解答每一個問題。期待您的關注
剛入門可以在GitHub或者各個技術網站找一些基礎的DEMO,不需要很復雜,有幾個知識點就可以了,熟練了在學其他知識點。最後再找一些完整的DEMO練,理解各個知識點之間的聯系,熟練掌握常用的設計模式。
初級程序員可以拿公司的項目練手,從頭到尾熟悉代碼,然後跟著版本更新,鞏固掌握的技能,有新技術點多在網上查查資料,多理解,活學活用。
高級程序員可以對現有項目進行重構,搭建框架,深入底層原理。
大神程序員一般都很神秘,是我膜拜的對象[呲牙]
給你推薦一些比較實用的小項目吧,另外千鋒也有很多實戰項目視頻教學。
文本操作
類
線程處理
Web應用
資料庫
圖像和多媒體
游戲
不用刻意找項目練手,可以從興趣入手自己做一個項目,然後再不斷的用新技術重構這個項目 。
從興趣入手為什麼說要從興趣入手呢?因為這個是一個需要長期進行下去的項目,如果不是自己感興趣的東西,很難有動力堅持下去。
有哪些方向可以參考呢?比如你喜歡動漫,那麼可以做一個動漫圖片素材收集的網站;你喜歡足球,那麼可以做一個 歷史 數據統計的網站,其實只要是你感興趣的都可以動手去做。
一個項目做成以後並不是一層不變的,因為技術永遠在更迭。當我們學習了一個新技術時,那麼我們就可以用新技術把這個項目重構,順便練練手。
比如說原來項目里有一個用Java寫的用來抓取數據的爬蟲,現在你正好在學習Python語言,那麼你就可以嘗試用Python語言將這個爬蟲重構。
總結我一直認為一個好的程序員必定具備良好的產品思維,可以根據自身的興趣點做一個項目並長期維護下去,並不斷的用新技術重構這個項目,在練手的同時還能兼顧興趣,可謂一舉兩得。
想通過項目練手,這說明你有上進心,非常值得鼓勵。互聯網上有不少資源,這些項目是比較成功的實踐案例,還有相應的教程或者豐富的文檔,便於使用者理解,這類項目非常適合程序員練手實踐。這些寶藏級的資源在哪裡最多呢,毫無疑問,在GitHub上最多。
有同學會問,GitHub上面這么多項目,我應該如何找到合適自己的呢?
從自己的興趣出發每個人喜歡做的項目都不一樣。有的人喜歡爬蟲,有的喜歡自己做些小 游戲 。從自己的興趣出發入手,這樣有利於保持學習的動力和熱情,肯花時間學習,自然進步就快。
從容易的項目入手一開始不要選擇太難的項目,要從簡單容易的項目入手,再慢慢過渡到難得項目。就像打 游戲 一樣,先殺小怪積累經驗,最後再跟boss單挑。順序不要搞反了。
想要找項目練熟的話,肯定是找已經有人做出來的,有源程序的,如果你在項目中遇到問題不懂又沒有人指導那這時候源程序就是你最好的指導老師,找項目最好是找自己喜歡的,這樣你做起來就不會覺得累,即使做一天都不會感覺到累,特別是每一次中的小小的成功可以讓自己更興奮和開心。我以前就是這樣過來的。
任何項目都沒有實際項目練手快,各種進度,各種bug,各種要求,想想就頭痛,剛解決了一個進度,下一個又來了,下一個寫完了上一個又出bug了,沒玩沒了,這是練手最快學習最快,網上找的項目只能全是熟悉,要解決問題卻比不上實際項目來的快
程序員的世界雖然是很精彩的,但是寫代碼本身是很枯燥的。
跟工作不一樣,練手的項目一般不會給你任何回報,除了能夠提高你的水平之外不能帶給你其他東西。為了防止我們因枯燥的代碼過程放棄練手,要盡可能地去找熱門的東西,能夠與人交流才能使這個練手的過程豐富起來,來自同行或者愛好者的交流反饋能使我們在枯燥的代碼過程中更有目標,更能堅持下去。一個人枯燥的壘代碼學到的東西比與同行在論壇上或者開源項目上的交流中要少得多。
所以說找項目練手最好是找自己感興趣的,並且最好是有很多用戶或者同行交流的,這樣才能學的更多並且不容易放棄。
可以去bilibili上找找相關的項目練習,主要還是得跟著視頻老師講解多加練習才好,熟能生巧嘛。推薦你可以看看尚矽谷bilibili上的視頻,更新及時內容也是貼合企業開發的需求呢。
「我的做法是,自己創造項目,然後哪裡做不出來就去問,去搜。
童年接觸過很多fc 游戲 ,我就把他們重新做一遍。
」
- - - - - - - - - - - - - - -
❷ APP是怎樣被開發出來的
APP是怎麼被開發出來的?有以下三種開發方式,下面就給大家簡單的解釋一下這三者有何不同,應該怎麼選擇。
一、開發方式
1、原生app開發
原生app就是利用手機本地操作系統開發的手機app,目前手機系統主要分為安卓和蘋果iOS兩種,雙方都有各自的編程開發語言及工具,原生app開發就是利用官方的開發工具進行分別開發。可以實現的功能多,性能優,但是需要人力投入多、周期長、成本高。
2、web app開發
web app開發主要是利用h5網頁的模式開發app,相當於一個網站,然後加了一個app的殼。不需要開發安卓和iOS雙版本的app,隨意開發速度快,周期短。但是app內大部分內容都需要重新載入,所以載入速度慢、容易卡。而且因為是基於網頁的,所以功能有限。
3、app混合開發
就是將原生app和webapp進行融合,部分核心板塊利用原生模式開發,非核心內容通過web方式實現,但是這種開發模式現在技術不成熟,缺少相應的人才。
二、功能方面
1、原生app:相當於電腦上軟體,可以調用很多的硬體設備,比如麥克風、簡訊、GPS、藍牙等等。
2、webapp:相當於電腦上的網頁。多用於頁面展示類app。功能有限,只能進行簡單的交互。
3、app混合開發:介入兩種之間。
三、載入速度
1、原生app:app應用所有的UI元素、數據內容、邏輯框架均安裝在手機終端上。訪問的時候,不需要重新下載載入應用頁面框架,所以載入速度快,不容易卡死。
2、webapp:每打開一個頁面,都需重新載入頁面的所有元素,訪問速度受限於手機性能、網速等,載入速度慢,容易卡死。
四、安裝
1、原生app:用戶需要到各大應用商店下載安裝並更新。安裝包對比web版比較大。
2、webapp:通過移動設備上的瀏覽器訪問,軟體更新只需要更新伺服器就夠了,用戶不需要重新下載安裝app。
以上就是「APP是怎麼被開發出來的?」的具體解答,希望能幫助到您
❸ 軟體開發的一般流程是什麼_
軟體開發流程分為: 需求確認——概要設計——詳細設計——編碼——單元測試——集成測試——系統測試——維護
軟體開發是一項包括需求捕捉、需求分析、設計、實現和測試的系統工程。軟體一般是用某種程序設計語言來實現的。通常採用軟體開發工具可以進行開發。軟體分為系統軟體和應用軟體,並不只是包括可以在計算機上運行的程序,與這些程序相關的文件一般也被認為是軟體的一部分。
軟體設計思路和方法的一般過程,包括設計軟體的功能和實現的演算法和方法、軟體的總體結構設計和模塊設計、編程和調試、程序聯調和測試以及編寫、提交程序。
軟體開發方面的工作。具體可分為以下方面:
1可視化編程掌握程序設計方法及可視化技術,精通一種可視化平台及其軟體開發技術。獲取Delphi程序員系列、Java初級或VB開發能手認證。 就業方向:企業、政府、社區、各類學校等可視化編程程序員。
2 WEB應用程序設計 具有美工基礎和網頁動畫設計能力,掌握互動式網頁程序的設計技術,能進行網站建設和維護。獲取Macromedia多媒體互動設計師或Delphi初級程序員或Delphi快速網路開發工程師認證。 就業方向:企業、政府、社區、各類學校等WEB應用程序員。
3軟體測試掌握軟體測試的基本原理、方法和組織管理,精通軟體測試工具。獲取ATA軟體測試工程師或Delphi初級程序員或Java初級程序員認證。 就業方向:企業、政府、社區、各類學校等軟體測試員。
4 資料庫管理 能應用關系範式進行資料庫設計,精通SQL語言,勝任資料庫伺服器管理與應用工作。獲取Oracle資料庫管理或SQL Server資料庫應用或Windows XP應用認證。 就業方向:企業、政府、社區、各類學校等部門的中、大型資料庫管理員。
5 圖形圖像製作 精通國際上流行的圖形/圖像製作工具(如CorelDraw、Photoshop、Pagemaker等)。獲取平面設計師相關的認證。 就業方向:廣告製作公司、建築設計公司、包裝裝璜設計公司、居室裝修公司、出版印刷公司。
❹ 本人最近公司,比較清閑,請教各位大俠,怎樣才能接到外包項目,比較容易一點的。
作為一個多年從事外包項目接單的軟體開發人士,我想從以下幾方面談談我的經驗,希望對大家會有所幫助。
第一點, 到哪裡接項目
軟體團隊或SOHO最為關心的一點是在哪裡可以找到項目做,也就是到哪裡可以找到有外包需求的客戶。對於一般人來說,廣交朋友然後通過熟人介紹還是接項目的第一途徑,但這要求你的朋友或熟人要在企業或公司里有比效重要的管理位置,對於像那些每天只能是埋頭寫代碼的程序員這顯然是不太現實的。所以大家不能等著項目來找你,而是要主動的出擊去找項目。
現在網上有很多軟體外包網站,在這里你可以找到不少的軟體外包信息。比如軟體項目交易網(sxsoft.com)上就有大量的軟體外包信,因為這里發布信息是不收費的,所以發包方挺多。不過這里每天外包的項目雖然很多,但競爭也很激烈。一般一個外包信息發出後一天內就會好幾個個競爭者,所以能第一時間與客戶取得聯系是非常關鍵的。因為客戶一般都是先入為主的,一般來說,如果第一個談項目的人他覺得滿意了,就會對其他的競爭者不再予以考慮,所以你要經常上網站上看看有什麼最新的項目,並立即與項目的發包方取得直接的聯系。其他比如軟體外包網、維客網、中國軟體網,還有CSDN的外包頻道上也有很多外包的信息,大家可以自己上去看看。
第二點, 如何與客戶談需求
接項目最重要的一步是與客戶談需求。客戶對軟體的需求是項目規劃和實施的根本,所以在與客戶談需求時,一定要讓用戶將所有的想法盡可能的闡述清楚,並把所有的要求羅列出來。這時候不應該害怕「勾引」起客戶的潛在需求而增加設計開發的工作量。而應該直接明白地要客戶把項目的要求一條條地列出來。這時先把條理、歸納、分析先都扔到一邊去,用紙筆將用戶最原始、最完整的要求准確地記錄下來。假如項目在你對客戶的需求沒有完全了解清楚的情況下就匆匆上馬,那麼就會隨時發生意想不到的變更,輕則使項目延期或超出預算,重則使得原來已經做好的軟體要徹底推倒重來。
所以我們在實施項目之前應該深入了解和挖掘客戶需求,對某些不明確的需求要與發包方反復進行討論,對於項目實施過程中的需求變更要規定處理辦法,並形成項目的最終需求。在需求分析階段,接包方首先對發包方的需求認真分析,然後通過業務建模、會談、問卷、需求會議等方式收集客戶完整需求,形成文檔,然後經過客戶討論、客戶審查、文檔修訂等多次反復的過程。有一點需要注意,即使雙方談的很投緣,在討論需求時也一定要詳細周到,精確到每一條不能再劃分的軟體功能為止。
第三點, 如何合理地報價
在完全了解客戶的需求後,下一步就是要確定一個合理的報價。接包方要從跟客戶的交談中盡量地了解出客戶的准確意思,思考客戶想要的是怎樣的一個軟體,項目復雜的程度多大,客戶的要求有多高,客戶的性格如何,能夠接受的價格範圍等等,這些因素對於軟體項目的報價都是密切相關的。如果客戶要的是一個小型的軟體系統,不太苛求有多全面的功能,只要滿足某一方面的需要,並且客戶又是一個比較隨和的人,那麼項目可以報一個接近成本的價格;相反如果客戶要求的是一個面面俱到的管理系統,需要有各方面的功能,缺一不可,並且客戶又是那種對項目要求嚴格苛刻,絕不變通的人,那就要充分考慮各種不穩定的因素,報一個比較高的價格。
在很多的情況下,客戶在跟接包方談項目之前,心理都已經有一個價格底線。如果要投入的費用超過了客戶的預算范圍,客戶將不再與你談該項目,他會轉而找其它軟體團隊商談。所以跟客戶談項目的過程中要迅速地思考客戶需求的真正含義,能夠通過某種轉換和變通,把客戶對於技術的要求與自己團隊的技術力量可以接受的價格相對比,從而得出一個雙方都能接受的報價。在與客戶的談判當中,靈活變通是成功的關鍵之一。當然並不是所有的客戶都可以通過變通而滿足,遇到客戶不認同項目費用的情況一定要處之泰然,真誠地為客戶解釋,把客戶的需求細化為技術上的要求給他分析,讓他同意你的報價的合理性。即使客戶對編程技術不是很了解,但經過你的細致的分析後也會對你的報價表示認同的。
❺ 程序員做外包有前途嗎
本人剛畢業時,在一家外包公司工作過,但是由於我對外包工作弊端認識很清楚,只工作了一個月的時間,我就離職了(當時是剛畢業,短期先幹了一個月賺生活費)。下面我介紹下我對做外包工作沒前途這個觀點的看法。
外包工作的弊端
外包程序員與人溝通少。程序員干外包的工作,基本很難與客戶直接接觸,也就無法直接與客戶溝通需求,時間一長,導致程序員思維固化,很難擁有產品人員的思維,而且大多數工作都是參照文檔進行。久而久之,腦子裡面就只有代碼,,缺少與人、需求打交道的基本技能;容易在後續工作中出現只按照程序邏輯思考問題,不會從客戶角度出發,另外,在與人交往的過程中,也會有不太善於與人溝通的標簽出現。
外包機構的技術老舊。為了追究研發周期短、程序穩定,一般來說,外包公司都使用的是相對比較老的技術棧和老的基礎組件,程序員都是用來搬磚,磊業務代碼的人員,外包公司純做技術研究的人少之又少,所以一般程序員進去,對技術能力的提升相對有限。
解決問題能力很難得到提升。由於外包公司大多數是開發業務程序,基本上很難遇到比較難以處理的技術問題,因為技術問題通常是在底層代碼中處理過了。所以他們對遇到技術問題的處理思路、處理方式都比較難以得到鍛煉。
技術架構能力弱。和上面一樣,由於都是寫業務代碼,技術架構都是公司現有的,基本無法從實際中得到鍛煉,架構能力也就無從談起。
純項目思維,而非產品思維。這點對一個程序員來說可以說是致命的,因為很多時候,程序要寫的好,需要很長時間的重構、優化,但是外包項目一般是項目類型,不是產品,也就意味著時間短,項目類型一般是瀑布式,只能給你很短的時間實現功能,很少讓你有思考架構、程序優化的機會,產品開發不一樣,產品開發要求程序員有延續性思維、不斷的自我革命,優化程序。
甲方給的時間少,加班多。一般來說外包工作都是時間比較緊急的項目,而不是一個時間長的產品開發,所以加班就在所難免,生活上的時間少之又少。
外包工作的好處
工作時間長,收入高。外包公司一般來說為了趕項目,通常在保證利潤的前提下,會多給點錢給程序員,讓他們心甘情願的加班,所以,加班時間可以換了高額的加班費,與其他人早早下班相比,單位時間的收入提高了。
短期內,技術會有所提升。如果你是從一個公司換到了外包公司,那麼外包公司的現有的技術棧,你可能在短短的半年就能夠摸透,因為你日常開發都要使用這項技術,而且是成套的完整的技術棧。這種情況是說:你現在使用的技術棧和外包公司的不一樣,所以你可以短時間內學會外包公司的技術。
積累人脈,以後私活項目不斷。由於你在外包團隊干過,你會認識很多非專業公司的人員,時間一長,很多人認識你,如果後續再有類似的公司,他們很自然的會找你個人進行開發,你的私活就多了。
總結
總結來說,我個人認為外包工作的弊端大於好處,所以如果讓我選,我肯定會選擇非外包公司。只有一種情況我會選擇,那就是我畢業2-3年,有能力短期內學習很多新技術,而且對薪資的要求比較高,我可能短期內會選擇1年的外包公司,學習知識,賺錢薪資。只要有選擇,我可能不會選擇外包。
❻ 大學生怎麼接編程項目
直接接項目不容易,因為那些公司不相信你。
一般來講,想接項目除非是計算機專業的學生。然後找一個跟你關系不錯的專業課老師,跟著老師做項目。因為大學老師經常會自己接一些項目,跟老師關系不錯的話,可以跟著一起干。
自己接的話,你在業內沒有什麼名聲和威望,人家是不會隨便給你個項目的。
如果你只是想學著做些實際的工作的話,可以找公司實習。 現在中國做軟體外包的企業很多, 大大小小的不計其數,很多都很缺人。如果你這方面的底子不錯的話,可以去應聘個實習生乾乾。
單獨的接項目,一般別想,不大現實。