你好,歡迎進入江蘇優(yōu)軟數(shù)字科技有限公司官網(wǎng)!
發(fā)布時間:2023-12-03
瀏覽次數(shù):0
大家好,我是,今天是我第一次總結(jié)自己入行以來的經(jīng)歷!
2017年從雉雞大學畢業(yè)后,我第一次接觸Java,然后就上手了。 后來我自學,成功進入了這個行業(yè)。 現(xiàn)在我已經(jīng)到新公司工作半年多了!
昨天我分享了文章《別人為什么學習?》 我只是根據(jù)語言本身的特點描述了這個原因。 今天我就來說說我自己。
01 為什么學習?
我相信能讀到這篇小經(jīng)驗文章的人都是因為想為了工作或者興趣而學習,而不是盲目的。 不過,我還是簡單說一下我的前世今生。 已經(jīng)了解的朋友可以跳過。
1991年,荷蘭人Guido van創(chuàng)建了這種編程語言。 這個名字來自于他特別癡迷的 BBC 喜劇系列《Monty's》。
設(shè)計理念是“簡單”、“清晰”、“優(yōu)雅”。
它也是最簡單的開發(fā)語言之一。 主要是全棧語言。
如果你是零基礎(chǔ),請注意,你是零基礎(chǔ),想入門編程,推薦你學習一下。 雖然C語言在國內(nèi)基本被用作入門教學,但在國外的麻省理工學院等大學卻被用作程序設(shè)計的入門教學。
與其他編程語言相比,它簡單易學,重點在于如何解決問題而不是語法和結(jié)構(gòu)。 正因為如此,越來越多的初學者選擇它作為編程的入門語言。 山東省已將內(nèi)容納入最新出版的小學六年級信息技術(shù)教材。 2018年起,浙江省信息技術(shù)教材編程語言由VB改為VB。
作為解釋型語言,更注重代碼的可讀性和簡潔的語法。 使用空格縮進代碼塊、減少無用的大括號、去掉句尾的分號等,顯著提高了代碼的可讀性。
C++中常見的一對大括號直接去掉,同樣的縮進標識代碼塊。 即使沒有接觸過編程的人也能快速讀懂程序,而無需考慮復雜的語法。
有很多模塊庫。 基本上標準庫就可以解決各種問題,開發(fā)效率非常高。 與C++、Java等其他語言相比,它可以讓我們用更少的代碼實現(xiàn)想法。 相同功能的代碼僅為C++和Java的20%到30%。
開發(fā)效率高,可以讓產(chǎn)品快速迭代,滿足需求。 像Yahoo!、NASA都是內(nèi)部大量使用的,國內(nèi)的知乎、豆瓣網(wǎng)站也是基于它開發(fā)的。
近年來,隨著不少企業(yè)選擇開發(fā)人工智能項目,人工智能越來越受歡迎。 根據(jù).com排名,2018年最受歡迎的人工智能編程語言是C++。
它非常簡潔且易于學習。 初學者幾乎可以立即學習這門語言,并立即完成一些有趣的事情。 他們不會因為復雜的編譯或語法而失去學習的興趣。 例如,建立個人網(wǎng)站、捕獲數(shù)據(jù)進行分析等。
這里生動地展示了所學知識的應用。
因為它簡單、易學、開發(fā)效率高,所以我選擇了它,并在人工智能、Web開發(fā)、網(wǎng)絡(luò)編程、數(shù)據(jù)分析、科學計算等領(lǐng)域使用它。
02 如何學習
第一步:學習的準備和開發(fā)工作
俗話說,磨刀不誤砍柴工。 你必須相信這一點,無論如何我也相信這一點。 那么如何磨刀呢? 首先,在百度上搜索一下,大致了解一下,然后去官網(wǎng)下載一個。 你最好先下載.7版本,學習后再看版本。 這符合中國的發(fā)展規(guī)律。 如果您在安裝過程中遇到問題,請自行百度搜索。 百度一下,相信你會找到答案的。 我相信你。 以上是操作系統(tǒng)下的安裝。
步驟2:首先寫一個Hello World
找到安裝目錄并看到一個.exe文件。 請用鼠標雙擊它。 如果您看到黑色窗口,請輸入 print("hello world!") 并按 Enter。 如果一切順利,您將看到如下所示的窗口。
第 3 步:了解其工作原理
別害怕,我可以用簡單的語言告訴你原理。 你不必從東到西尋找它。 我們可以把那個.exe想象成一個翻譯器(解釋器)。 當我們輸入print(“hello world”)時,翻譯器會將我們的輸入解釋給操作系統(tǒng),然后操作系統(tǒng)就會明白是要向屏幕輸出hello。 世界,其實就是這么簡單。
第 4 步:了解如何運行您編寫的腳本文件
按照上一步操作,請關(guān)閉黑色窗口,然后再次打開它。 你會發(fā)現(xiàn)之前輸入的東西全部消失了。 我應該怎么辦? 如果我想保存之前的輸入該怎么辦? 別擔心,我會幫助你的。
現(xiàn)在,請使用記事本創(chuàng)建一個純文本文件并將其另存為 hello.py。 請將這個hello.py放在c盤根目錄下。
然后,請打開cmd窗口(不知道cmd是什么?百度一下就知道了,對吧),在窗口中輸入c:\\hello.py,如果一切順利,你會看到如圖所示的內(nèi)容以下。
第五步:選擇合適的入門書籍,在官網(wǎng)進行輔助學習。
例如,“艱難地學習”
中國推出的中文版是在第三版的基礎(chǔ)上制作的。 知乎上有趙默水發(fā)表的中文譯本,可以在網(wǎng)上閱讀。
本書由淺入深,由易到難,循序漸進地介紹基本語法和編程思想,非常符合認知規(guī)律。 本書共有習題52道。 你可以邊學邊實踐,了解輸入輸出、變量、函數(shù),以及條件判斷、循環(huán)、類和對象等。
我平時工作很忙,沒有大量的時間看書。 我只能充分利用碎片時間,比如工作間隙、飯后、上下班路上等。
記筆記并突出重點。 前面的章節(jié)很短。 閱讀它們只需要幾分鐘。 根據(jù)你的理解,你可以擴展練習的內(nèi)容。
做練習的時候,不要急于在電腦上敲代碼。 將其寫在筆記本上,或者使用計算機上的記事本記下您的想法并繪制流程圖。
晚上有時間的時候,我會自己在家完成代碼,檢查并運行。
也許有人會說,這么簡單的程序應該畫什么樣的流程圖呢? 事實上,事實并非如此。 只有從簡單的流程圖開始,熟練了,才能游刃有余地畫出復雜的程序流程圖。
畫流程圖也是一種整理思路的方式,利用思維導圖構(gòu)建自己的知識樹是非常有幫助的。
讀這本書的時候不求快,但求打牢基礎(chǔ)。 只要你獨立完成本書的學習,上手就不會有問題。
在閱讀本書的同時,通過官網(wǎng)拓展相關(guān)內(nèi)容,如函數(shù)、庫的使用等。
遇到問題,先想一想,再問。 如果一種方法不起作用,請嘗試另一種方法。
多讀書,多思考,多實踐,堅持下去,你很快就能掌握基礎(chǔ)知識。
剩下的就是選擇一個方向去深入研究了。
03 編程工具和外語
用什么工具寫代碼并不重要,選擇一個自己熟悉、用得舒服的工具就行,專注于代碼,不要在環(huán)境配置上浪費太多精力。
Text 3、vi等都可以。
我正在使用這三個。 簡單的vi是最方便的。 它在一個 iTerm 窗口中編輯并在另一個 iTerm 窗口中運行。
許多書籍和資料都是英文的,這減少了翻譯的需要,使理解更清晰。
找工作
我在三月份找工作,當時天氣還不太熱。 我面試了10家公司,不算很多,拿到了5家公司的offer。 面試題不難,我都整理出來了!
自我介紹
這是一道計分題,千百年不變的第一題。 不過,有些朋友可能不太重視。 其實這個問題已經(jīng)在面試官心里決定了你的注意力。 自我介紹的主要結(jié)構(gòu):個人基本信息+基本技術(shù)構(gòu)成+項目經(jīng)歷(具體項目及項目中負責的部分)+自我評價。 原則是根據(jù)招聘崗位的需要進行介紹。 在此之前,你需要做好準備,看看招聘人員需要什么樣的研發(fā)工程師。 目前,大部分老板招聘的都是自動化測試平臺的設(shè)計和開發(fā),以及數(shù)據(jù)挖掘和清洗。 看來純粹的Web開發(fā)還不存在,所以Web方向的同學要注意向運維和自動化方面靠攏。
兩部分問題
在面試過程中,面試官提出問題時,往往會針對問題本身提出更深層次的問題。 例如:你用過with語句嗎? 我的答案是:訪問資源時經(jīng)常使用with語句,以確保無論訪問過程中是否發(fā)生異常,都執(zhí)行必要的清理操作,例如文件的自動關(guān)閉和線程中鎖的自動獲取和釋放。 面試官接著問,你知道為什么with語句可以讓文件正確關(guān)閉嗎? 這個問題突然讓我感到無聊。 我只依稀記得with語句會開辟一個獨立的環(huán)境來進行文件訪問,類似于沙箱機制。 面試官對這個答案不置可否,所以他勉強通過了。 因此,要知道正在發(fā)生什么,我們還必須知道為什么會發(fā)生。 日常學習中,多問為什么,面試時就不會太被動。
別給自己挖坑
確保你在回答面試官的時候,你理解了你回答中的每一個知識點,否則被問到會很尷尬。 當我回答一個網(wǎng)絡(luò)安全問題時,我提到了SQL注入。 面試官說既然提到了SQL注入,請解釋一下它的原理和解決方案! 尷尬的是,我居然把XSS跨站注入攻擊和SQL注入結(jié)合起來了。 混雜在一起,情況就有些尷尬了。 所以要考慮你所說的每一個字。 聰明的學生還可以引導面試官問他想問的問題。
一定要問Redis,高并發(fā)解決方案
面試了很多公司后,不可避免地被問到對Redis和高并發(fā)解決方案了解多少。 作者的回答不太好。
今年你學到了哪些新技能?
這是面試官考察你對新技術(shù)是否有極大熱情的方式。 由于我沒有任何經(jīng)驗,所以我把之前的Java簡歷改成了相關(guān)的內(nèi)容。 所有面試過我的面試官無一例外都問過這個問題。 他們都希望找到一個不斷學習、不斷創(chuàng)新的年輕人。 瀏覽更多最新技術(shù)信息并選擇感興趣的領(lǐng)域。
您會選擇初創(chuàng)公司還是像 BAT 這樣的大公司,為什么?
當然這取決于招聘人員是哪家公司,但問這個問題的通常是初創(chuàng)公司。 答案無非是:挑戰(zhàn)大,??享受挑戰(zhàn); 創(chuàng)業(yè)公司有無限的成功可能性,你想與公司一起成長;
你為什么離開上一家公司?
這也是一個必問的問題。 找一個更合理的理由。 不要說你因為公司零食太多而胖了20斤,也不要說你周末吃膩了公司附近的外賣。 別這么說……最主要的原則是不要責怪你以前的公司。 如果你有抱怨,老板天天換單,PM不靠譜等等,找找自己的原因:公司發(fā)展比較穩(wěn)定,但我還年輕,希望有更大的挑戰(zhàn)和更多的學習機會。 像這樣。
描述一下您上一家公司
這個問題被問到的幾率不是很高,但是還是被三個公司問到了。 招聘人員主要是想根據(jù)之前公司的具體業(yè)務規(guī)模和主營業(yè)務來確定你的級別。 知道招聘人員的目的才能平靜地回答。
技術(shù)問題
上面提到了很多非技術(shù)問題。 只要稍作準備作為參考,你就能在面試中流利地回答這些問題。 我們來談談面試中的技術(shù)問題。 個人感覺面試官不會問太多技術(shù)問題。 他們通常會問 2-3 個問題,由淺入深。
函數(shù)式編程簡介
在函數(shù)式編程中,函數(shù)是基本單位,變量只是一個名稱,而不是存儲單位。 除了匿名函數(shù)之外,還使用 ??()、map()、()、apply() 函數(shù)來支持函數(shù)式編程。
什么是匿名函數(shù)以及匿名函數(shù)有哪些限制?
匿名函數(shù)又稱函數(shù),通常用在函數(shù)體比較簡單的函數(shù)中。 顧名思義,匿名函數(shù)沒有名字,所以不用擔心函數(shù)名沖突。 然而sublime text 3 函數(shù)追蹤,對匿名函數(shù)的支持是有限的,匿名函數(shù)只能在一些簡單的情況下使用。
如何捕獲異常以及常用的異常機制有哪些?
如果我們不對異常采取任何預防措施,那么如果程序執(zhí)行過程中發(fā)生異常,程序就會被中斷,調(diào)用默認的異常處理程序,并將異常信息輸出到終端。
try...語句:當執(zhí)行try語句時發(fā)生異常時,返回try語句層查找其后面是否有語句。 當找到該語句時,將調(diào)用此自定義異常處理程序。 異常處理完畢后,程序繼續(xù)執(zhí)行。 語句表示無論是否發(fā)生異常,都必須執(zhí)行中的語句。
陳述:判斷下列陳述是對還是錯。 如果為True,則繼續(xù)執(zhí)行打印。 如果為False,則中斷程序,調(diào)用默認的異常處理程序,并在語句的逗號后面輸出提示信息。
with語句:如果with語句或語句塊中發(fā)生異常,則會調(diào)用默認的異常處理程序,但文件仍會正常關(guān)閉。
copy() 和 () 之間的區(qū)別
Copy是淺拷貝,只復制可變對象的父元素。 它是深度復制,遞歸復制可變對象的所有元素。
函數(shù)裝飾器的作用是什么(經(jīng)常測試)
裝飾器本質(zhì)上是一個函數(shù),它允許其他函數(shù)添加額外的函數(shù),而無需進行任何代碼更改。 裝飾器的返回值也是一個函數(shù)對象。 常用于有橫切需求的場景,例如:日志插入、性能測試、事務處理、緩存、權(quán)限驗證等。通過裝飾器,可以提取出很多與功能無關(guān)的類似代碼本身并繼續(xù)重用它。
變量搜索范圍和順序的簡要描述
作用域只是變量的命名空間。 代碼中為變量賦值的位置決定了哪些范圍的對象可以訪問該變量。 這個作用域就是變量的作用域。 在 中,只有模塊()、類(class)和函數(shù)(def,)會引入新的作用域。 變量名解析機制也稱為LEGB規(guī)則:局部作用域(Local)→當前作用域嵌入的局部作用域()→全局/模塊作用域()→內(nèi)置作用域(Built-in)
新式類和舊式類的區(qū)別,如何保證使用的類是新式類
為了統(tǒng)一類和類型,在2.2版本中引入了新樣式的類。 在 2.1 版本中,類和類型有所不同。
為了確保您使用新樣式的類,您可以執(zhí)行以下操作:
簡單描述一下兩者的區(qū)別
它在創(chuàng)建新實例時被調(diào)用,并在初始化實例時使用。 這是它們之間最本質(zhì)的區(qū)別。
new 方法將返回構(gòu)造的對象,但 init 不會。
新函數(shù)必須將 cls 作為其第一個參數(shù),而 init 將 self 作為其第一個參數(shù)。
垃圾收集機制(經(jīng)常測試)
GC主要使用引用計數(shù)()來跟蹤和收集垃圾。 在引用計數(shù)的基礎(chǔ)上,采用“標記與清除”(mark and )來解決容器對象中可能出現(xiàn)的循環(huán)引用問題,采用“分代回收”()通過交換空間來提高垃圾回收效率為了時間。
1 個引用計數(shù)
是每個對象必備的內(nèi)容,用作引用計數(shù)。 當一個對象有新的引用時,它的值會增加,而當引用它的對象被刪除時,它的值會減少。 當引用計數(shù)達到0時,對象的生命就結(jié)束了。
優(yōu)勢:
2 標記清除機制
基本思想是先按需分配,當沒有空閑內(nèi)存時,從程序堆棧上的寄存器和引用開始,遍歷以對象為節(jié)點、引用為邊組成的圖,標記所有可訪問的對象,然后進行清理他們。 遍歷內(nèi)存空間并釋放所有未標記的對象。
3代技術(shù)
分代回收的總體思路就是將系統(tǒng)中的所有內(nèi)存塊按照生存時間劃分到不同的集合中。 每個收藏品都成為一個“一代”。 垃圾收集的頻率隨著“一代”生存時間的增加而增加。 減少后,生存時間通常用垃圾收集的次數(shù)來衡量。
默認情況下,定義了三代對象集合。 索引號越大,對象的生存時間越長。
@的作用是什么? 如何實現(xiàn)成員變量的只讀屬性?
@ 負責將方法轉(zhuǎn)換為屬性調(diào)用。 通常用在屬性的get方法和set方法中。 通過設(shè)置@,可以實現(xiàn)對實例成員變量的直接訪問,同時保留參數(shù)檢查。 另外,成員變量的只讀屬性可以通過設(shè)置get方法來實現(xiàn),無需定義set方法。
*參數(shù)和**
*args 表示位置參數(shù),它將接收任意數(shù)量的參數(shù)并將這些參數(shù)作為元組傳遞給函數(shù)。 ** 代表的關(guān)鍵字參數(shù)允許您使用未預先定義的參數(shù)名稱。 另外,位置參數(shù)必須放在關(guān)鍵字參數(shù)的前面。
你用過嗎? 它有什么好處? 如何實施?
with語句適合訪問資源,保證無論使用過程中是否發(fā)生異常,都進行必要的“清理”操作并釋放資源,例如使用后自動關(guān)閉文件、線程中自動獲取和釋放鎖等。
下面的代碼會是什么? 你的
def (val, list=[]): list.(val) list list1 = (10) list2 = (123, []) list3 = ('a') print(list1) # list1 = [10, 'a'] print(list2) # list2 = [123, []]print(list3) # list3 = [10, 'a']class (): x = (): (): (.x, .x, .x) # [1,1,1].x = (.x, .x, .x) # [1,2,1].x = (.x, .x, .x) # [3,2,3]
在二維數(shù)組中,每行從左到右按升序排序,每列從上到下按升序排序。 請完成一個函數(shù),輸入這樣一個二維數(shù)組和一個整數(shù),判斷數(shù)組中是否包含該整數(shù)。
arr = [[1,4,7,10,15], [2,5,8,12,19], [3,6,9,16,22], [10,13,14,17,24] , [18,21,23,26,30]]def (num, data=None): while data: if num > data[0][-1]: del data[0] print(data) (num, data =無) elif num < data[0][-1]: data = list(zip(*data)) del data[-1] data = list(zip(*data)) print(data) (num, data=無)其他: True data.clear() == '': print((18, arr))
獲取最大公約數(shù)和最小公倍數(shù)
a = 36b = 21def (a, b): while b: a,b = b, a%b adef (a, b): c = a*b while b: a,b = b, a%bc //aif == '': 打印((a,b)) 打印((a,b))
獲取中位數(shù)
def (data): data.sort() half = len(data) // 2 (data[half] + data[~half])/2l = [1,3,4,53,2,46,8,42 ,82]if == '': 打印((l))
輸入一個整數(shù),并輸出該數(shù)字的二進制表示形式中 1 的個數(shù)。 負數(shù)以二進制補碼表示。
def (num): if num > 0: count = b_num.count('1') print(b_num) count elif num < 0: b_num = bin(~num) count = 8 - b_num.count('1') count else: 8if == '': print((5)) print((-5)) print((0))
幾個給了我13K,一個給了我15Ksublime text 3 函數(shù)追蹤,最后我選擇了浦東的一家公司。 我已經(jīng)工作半年多了,這是我第一次分享,但我仍然會繼續(xù)學習。
最近我決定花一萬買MC和電腦桌,方便我以后的學習!
以上是我在面試時被問到的問題。 算法題比較少,只有兩家公司讓我寫算法。 好像對數(shù)據(jù)結(jié)構(gòu)問得不多,所以就問了B+樹的結(jié)構(gòu)。 數(shù)據(jù)庫詢問與索引相關(guān)的優(yōu)化。 一些基本問題我可以回答,但最好能深入討論。
本文僅出于拋磚引玉的目的。 有些見解還不是很成熟。 希望能給那些正在自學和找工作的人提供一些幫助。 面試過程中最重要的是保持冷靜的心態(tài)。 求職過程是一個相互的過程,所以沒有必要過度。 如果你緊張,就充分表達你所掌握的知識。 只要你是千里馬,伯樂遲早會帶你出去散步。
在不久的將來,多元智能時代必將走進我們的生活。 有興趣進入未來前沿行業(yè)的朋友可以收藏多元智能時代,及時獲取人工智能、大數(shù)據(jù)、云計算、物聯(lián)網(wǎng)等方面的入門知識和信息。 信息化,讓我們共同引領(lǐng)人工智能未來
如有侵權(quán)請聯(lián)系刪除!
Copyright ? 2023 江蘇優(yōu)軟數(shù)字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服務提供商
13262879759
微信二維碼