主頁 >  其他 > 【筆者感悟】筆者的作業感悟【二】

【筆者感悟】筆者的作業感悟【二】

2023-07-11 08:03:30 其他

寫在前面

在上一篇筆者的作業感悟【一】筆者講到了一些個人經歷,幫助大家從思維上學生轉換到社會人士,在思維成功轉換以后,接下來我們就要學會干活,除了一些比較惡劣的職場環境,大部分職場都是把活干好了才能拿到報酬,因此這里筆者想給大家分享一些拙見,幫助大家能夠把活干好

問題解答

問題一:要不要刷演算法題?

這個問題相信是很多同學都一定會問的,甚至很多同學會說,我看到有些同學即便不刷演算法題,也能拿到高薪的作業,那么我是不是不刷演算法題我也能在職場中混得還行?

筆者的回答是必須刷,筆者在這里不想從比較功利的角度討論,大廠面試演算法占了多少比重,我們回歸到作業的本質來說,

 

想必大家都知道,計算機是一個傻瓜,沒有獨立思考能力,我們說前進他不會后退,我們說往東他不會往西,那不知道大家有沒有想過,我們作為開發,我們在拿什么指揮它作業,

另外想必也會有感觸,我們把自己寫好的代碼講給一個門外漢聽的時候,我們會發現,即便我們不和他們講任何專業知識,他們也一樣聽不懂我們在說什么

 

事實上,這看似毫無關聯的兩件事,其實正好是人和計算機互動的正反兩面

前一個是人走向計算機,我們要把我們的想法傳輸給計算機,讓它作業

后一個是計算機走向人,我們要把計算機的作業內容還原成人能理解的想法

 

而連接這兩個主體的是什么,就是演算法

 

我們來回顧一下演算法的基本概念

演算法是一系列解決問題或執行任務的步驟,它描述了在給定輸入后,通過一系列有限步驟來產生所需輸出的程序,演算法在計算機科學和數學中被廣泛應用,

演算法的特點如下:

  1. 明確定義:演算法必須具有明確的輸入和輸出,以及一系列明確定義的操作步驟,

  2. 可執行性:演算法必須是可執行的,即可以實際運行并產生結果,

  3. 有限性:演算法必須在有限的時間內運行結束,

  4. 輸入:演算法可以接受一個或多個輸入,

  5. 輸出:演算法可以產生一個或多個輸出,

  6. 確定性:每個步驟都必須具有唯一確定的含義,不會產生二義性,

  7. 結構化:演算法可以由基本操作和控制結構(如順序結構、分支結構和回圈結構)組成,形成一個結構化的整體,

  8. 有效性:演算法應該有效利用計算機資源,如時間和空間,

  9. 可讀性:演算法應該易于理解和閱讀,

通過設計高效和優化的演算法,可以提高問題的解決效率,減少計算資源的使用,滿足實際應用的需求,

 

同學們再回想一下平時做演算法題的時候,是不是三個階段

  1. 先理解自然語言的問題描述
  2. 轉換成有限計算機作業步驟
  3. 最后根據你寫的步驟來寫編程語言

 

我給大家舉一個例子:經典背包問題

問題描述

給定一組具有重量和價值的物品,和一個限制總重量的背包,要求在不超過背包總重量的前提下,選擇一些物品放入背包,使得放入背包的物品總價值最大化,

演算法步驟

  1. 定義一個二維陣列dp,其中dp[i][j]表示在背包容量為j的情況下,前i個物品的最大價值,
  2. 初始化dp陣列的第一行和第一列為0,表示沒有物品或者背包容量為0的情況下,最大價值都為0,
  3. 對于每個物品i,遍歷所有背包容量j,如果物品i的重量小于等于背包容量j,則可以選擇將物品i放入背包,此時背包容量變為j-w[i],最大價值變為dp[i-1][j-w[i]]+v[i],即考慮前i-1個物品,在背包容量為j-w[i]的情況下的最大價值加上物品i的價值,
  4. 如果物品i的重量大于背包容量j,無法將物品i放入背包,最大價值保持為dp[i-1][j],
  5. 比較將物品i放入背包與不放入背包兩種情況下的最大價值,取較大值作為dp[i][j]的值,
  6. 遍歷完所有物品和背包容量后,dp陣列右下角的值即為問題的解,即在限制背包容量的情況下,可以放入背包的物品總價值最大化,

代碼實作

public class KnapsackProblem {

    public static int knapsack(int[] weights, int[] values, int capacity) {
        int n = weights.length;
        int[][] dp = new int[n+1][capacity+1];

        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= capacity; j++) {
                if (weights[i-1] <= j) {
                    dp[i][j] = Math.max(dp[i-1][j], dp[i-1][j-weights[i-1]] + values[i-1]);
                } else {
                    dp[i][j] = dp[i-1][j];
                }
            }
        }

        return dp[n][capacity];
    }

    public static void main(String[] args) {
        int[] weights = {1, 2, 3};
        int[] values = {6, 10, 12};
        int capacity = 5;

        int max = knapsack(weights, values, capacity);
        System.out.println("Maximum value that can be obtained: " + max);
    }
}

 

結論:演算法之所以被稱為內功心法,指的是一個人能在計算機思維和自然人思維中熟練地來回切換,因此演算法很重要

問題二:現在學什么語言比較合適?

之所以大家現在整天想著學什么好就業,是人心浮躁的后果,這個時代大家都喜歡掙快錢,但是筆者提醒大家,來得快的東西往往去的也快,很多中了頭獎的家庭,往往最后的結局并不會多圓滿

筆者認為,除非你現在學的是就業面特別狹窄的技識訓者特別老舊的技術,例如VB語言,Pascal語言啥的,筆者現在見到的確實是不多

一般情況下沒有必要換,你有幾十張一塊錢,也抵不過別人一張一百塊

那么有同學會問,萬一我學的技術若干年后過時了怎么辦,筆者認為也不用擔心

學到深處很多東西是相通的,像C++,Java都是面向物件編程,要過渡過去是不需要完全從頭開始的

結論:除非現在學的就業面特別窄或者過時了,否則沒有必要特地去換或者追求新技術

問題三:作業中老是curd怎么辦?

說實話,筆者自己也才作業了一年,加上筆者技術一般,也沒有分到啥特別高端技術的專案,那么筆者的建議是什么,就是嘗試著從程式員走向軟體工程師,筆者之前在博客中強調,要有工程化思維,很多同學軟體工程這門課可能背的很熟,也是少有的能夠在筆試中輕松通過的考試,畢竟沒有敲代碼

但是同學們捫心自問一下,在作業中真正用到這門課知識的部分有多少,同學有沒有嘗試過用工程化的思維來作業,例如你參與一個專案只是拿到需求就開始敲,還是縱觀整個專案做一份開發報告,做測驗有沒有自己寫過測驗報告,后續和其他崗位的交接有沒有記錄

筆者最深刻的印象就是我那些同事開專案會議的時候,都是進了會議室打開execl或者word臨時寫一個會議記錄,而不是帶著進度報告來討論哪里有問題,那怎么可能做得出名堂來,典型的頭痛醫頭,腳痛醫腳

作業中用不到軟體工程,那怎么能叫軟體工程師呢

 

程式員和軟體工程師在職責和作業范圍上存在一些區別,以下是它們的區別:

  1. 職責:

    • 程式員主要負責撰寫代碼,實作軟體開發程序中的具體功能和邏輯,
    • 軟體工程師則更加關注整個軟體專案的生命周期,包括需求分析、設計、開發、測驗、維護等,
  2. 角色:

    • 程式員通常是一個團隊中的一個成員,負責根據規范和設計方案撰寫代碼,
    • 軟體工程師通常扮演著專案或團隊的領導者或決策者的角色,負責專案管理、技術選型、架構設計等,
  3. 技能要求:

    • 程式員主要需要具備編碼的技能和經驗,例如掌握各種編程語言和工具,
    • 軟體工程師相對于程式員,除了需要掌握編碼技能外,還需要具備系統設計、需求分析、架構設計、專案管理等更高級的技能,
  4. 作業范圍:

    • 程式員的作業范圍主要集中在具體的編碼實作和單個功能或模塊的開發上,
    • 軟體工程師的作業范圍更廣,他們需要關注整個軟體專案的生命周期,并協調團隊成員之間的合作,

 

很多同學沉溺于技術,當然不是說技術不重要,技術很重要,筆者也同樣喜歡研究技術,但是編程往往在這個工程中只占一小部分,要當工程師還有很長一段路要走呢,整天CURD那只能證明終究還是程式員,那么可替代性當然就很強,可不就得35歲就請你走人換精力更旺盛的應屆生嘛

結論:嘗試著用工程化的思維作業

問題四:有沒有什么好的學習方法?

筆者也經常在網上看到某某幾步法,有些還吹得特別玄幻,背后經過美國XX專家研究,幫助多少人從一事無成到XX大咖,這些東西筆者以前參加作業前都嘗試過,基本沒啥用

這還是我之前提到的人心浮躁的問題,比較明顯的是很多同學沉迷于掙快錢,有些同學看似沒有想著掙快錢,希望通過自己的努力來獲取成果,這比前一種同學在思維上前進了一步,但是很多同學其實并沒有真正下功夫去啃書本,鉆研專案,很多同學學習盲目求快,幻想著一夜之間從學渣變成學霸,結果給自己制造焦慮,然后必然會去尋找怎么樣學習快,怎么樣學習高效,事實上在筆者看來,從你搜索開始,你就已經注定不可能學好了,因為你心亂了,這還是人心浮躁,只不過是一種比較隱蔽的人心浮躁罷了

學習本質事實上是個很單純的東西,把某樣東西反復重復,從不認識到認識,從認識到理解,理解到記住,記住到本能,如此而已,

所謂的高效辦法,那也只是基于你自己領悟以后總結出來的所謂的方法,不能一棒子打死所謂的學習方法都沒有用,但是你情緒浮躁,學也只是形似神不似,那只會邯鄲學步,讓你原本會的東西都忘了

如果硬要筆者介紹學習方法,那么筆者給大家推薦一個

例如我現在要學習:例如我現在要學習譚浩強的C語言程式設計,很多同學可能學習的時候力求把書上的東西還原出來,但事實上你要真有這本事有限的時間內一字不落地把書上的內容記下來,你現在就能當我的老師了,同學們要記住,書是人寫的,書上的所有知識體系都是基于寫書人的語言體系,但是人和人是不一樣的,有時候兩個人的生理結構命中注定相克,他的語言體系并不適合于你,那么你想學號這本書該怎么辦呢,用你自己的語言把書上的內容還原出來,這也是筆者之前在學習感悟里強調過的要建立自己的知識體系

這個時候就回到了那句老掉牙的話,適合自己的才是最好的

 

結論:大道至簡,追求那些花拳繡腿往往會變得不堪一擊,要更注重實在

附注

那么今天呢就先和大家聊到這里,筆者由于只作業了一年,加上筆者前半年由于經歷了數年的動蕩,渴望安定,基本上都處于一個半擺爛的狀態,所以能給大家分享的作業經驗也有限,筆者接下來會更加努力的作業,給大家帶來更多的經驗分享,希望同學們作業順利,早日升職加薪、當上總經理、出任CEO、迎娶白富美、走上人生巔峰,想想是不是還有點小激動呢

在黑夜里夢想著光,心中覆寫悲傷,在悲傷里忍受孤獨,空守一絲溫暖, 我的淚水是無底深海,對你的愛已無言,相信無盡的力量,那是真愛永在, 我的信仰是無底深海,澎湃著心中火焰,燃燒無盡的力量,那是忠誠永在,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/556954.html

標籤:其他

上一篇:web安全學習日志---xss漏洞(跨站腳本攻擊)

下一篇:返回列表

標籤雲
其他(162344) Python(38273) JavaScript(25528) Java(18294) C(15239) 區塊鏈(8275) C#(7972) AI(7469) 爪哇(7425) MySQL(7292) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5876) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4615) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2438) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) HtmlCss(1994) .NET技术(1986) 功能(1967) Web開發(1951) C++(1942) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1882) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 【筆者感悟】筆者的作業感悟【二】

    博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ......

    uj5u.com 2023-07-11 08:03:30 more
  • web安全學習日志---xss漏洞(跨站腳本攻擊)

    1.反射性xss(reflacted) 僅執行一次,非持久型。主要存在于攻擊者將惡意腳本附加到url的引數中,發送給受害者,服務端未經嚴格過濾處理而輸出在用戶瀏覽器中,導致瀏覽器執行代碼資料。 利用場景: 直接插入JS代碼,修改url引數 攻 <script>alert('hack')</scrip ......

    uj5u.com 2023-07-11 08:03:16 more
  • 云原生周刊:Dapr 完成模糊測驗審計 | 2023.7.10

    ## 開源專案推薦 ### [Shell-operator](https://github.com/flant/shell-operator) Shell-operator 是一個在 Kubernetes 集群中運行事件驅動腳本的工具。 ### [node-problem-detector](htt ......

    uj5u.com 2023-07-11 08:03:06 more
  • 基于AidLux的自動駕駛智能預警應用方案

    1. 自動駕駛感知演算法及AidLux相關方案介紹 1.1自動駕駛 自動駕駛汽車,又稱無人駕駛車、電腦駕駛車、無人車、自駕車,是一種需要駕駛員輔助駕駛或者完全不需要操控的車輛。作為自動化載具,自動駕駛汽車可以不需要人類操作即能感知環境及導航。 1.2 自動駕駛系統的組成部分 1.2.1 環境感知系統 ......

    uj5u.com 2023-07-11 08:02:56 more
  • 共探AI大模型時代下的挑戰與機遇,華為云HCDE與大模型專家面對面

    摘要:近日,華為開發者大會2023(cloud)“開發者生態創新發展圓桌會議”在東莞華為溪流背坡村成功舉辦。 2023年7月8日,華為開發者大會2023(cloud)“開發者生態創新發展圓桌會議”在東莞華為溪流背坡村成功舉辦。以大模型為代表的的新一輪人工智能技術浪潮洶涌而來,在圓桌會議上,華為技術專 ......

    uj5u.com 2023-07-11 08:02:39 more
  • 跨境電商企業出海,注意五大業務欺詐風險!

    中國跨境出海業務快速發展并呈現出積極的現狀,越來越多的中國企業開始探索海外市場,尋求更大的發展機遇和國際化的競爭優勢。 從國有企業到民營企業,從基建、外貿專案到制造業、服務業、高端科技企業,從東南亞延伸至“一帶一路”沿線國家和地區,中國企業“走出去”步伐逐漸加快。資料顯示,2022年,中歐貿易逆勢增 ......

    uj5u.com 2023-07-11 08:02:34 more
  • 華為云開發者聯盟助力培養數字化人才,加速應用構建質效提升

    摘要:大會第三天依舊熱鬧非凡,精彩活動紛至沓來。眾人矚目的專題論壇如期舉行,專家們圍繞技術開發、行業實踐最新趨勢,分享寶貴經驗和深刻見解。 本文分享自華為云社區《華為云開發者聯盟助力培養數字化人才,加速應用構建質效提升》,作者:華為云社區精選 。 在前兩天的大會期間,我們不僅享受了精彩的云技術盛宴, ......

    uj5u.com 2023-07-11 08:02:06 more
  • 高尿酸血癥與痛風指南

    # 高尿酸血癥與痛風指南 ::: warning 閱前提醒 本文章內容均整理自參考文獻,僅做為學習資料,請不要作為病情診斷依據,如感覺身體不適請立即前往醫院請專業醫生判斷病情,并遵循醫囑進行相應治療。 ::: 痛風(gout)是嘌呤代謝紊亂和(或)尿酸排泄減少所引起的一種晶體性關節炎。 臨床表現為高 ......

    uj5u.com 2023-07-11 08:01:58 more
  • 二分查找

    # 二分查找 ## 簡介 二分查找(Binary Search)是一種高效的搜索演算法,用于在 **有序陣列(或有序串列)** 中查找特定元素的位置。它將目標值與陣列的中間元素進行比較,并根據比較結果縮小搜索范圍,直到找到目標值或確定目標值不存在。 **二分查找的關鍵點是每次迭代都能將搜索范圍縮小一半 ......

    uj5u.com 2023-07-11 08:01:53 more
  • Stable Diffusion AIGC:3步成為P圖大師

    摘要:instructPix2Pix文字編輯圖片是一種純文本編輯影像的方法,用戶提供一張圖片和文本編輯指令,告訴模型要做什么,模型根據編輯指令編輯輸入的影像,最終輸出用戶想要的影像。 本文分享自華為云社區《【云駐共創】Stable Diffusion AIGC限時0元!3步成為P圖大師》,作者:香菜 ......

    uj5u.com 2023-07-11 08:01:36 more