C語言(思維陷阱)

2021-07-10 23:25:11 字數 877 閱讀 3466

程式設計開發的初學者若能掌握「機器思維」的技巧往往能事半功倍,但熟練掌握該技能後卻要避免陷入思維陷阱。

拓展:所謂機器思維,就是貼近計算機執行的原理,充分利用計算機的優勢。電腦最大的特點就是效率高,最擅長的事情就是迴圈操作,因此我們能使用迴圈來處理很多事情。但是一旦形成這樣的思維習慣,也許就會陷入思維陷阱了。

正確的姿勢是:對演算法時刻保持一定的數學敏感度,盡可能地將數學融入程式中,而不是一味的暴力破解。比如,要計算從1到100的所有自然數之和。多年的計算機思維可能會讓你的演算法脫口而出:for迴圈,從1到100遍歷並累加。這麼做簡單是簡單,但效率卻很低。

乙個從來沒學習國程式設計的小學生,他的思路可能是這樣的:

總和 = (1+100)*100/2

梯形面積 =(上底+下底)* 高 / 二

乙個簡單的公式比上述迴圈暴力破解效率提高了100倍。

機器思維的另乙個陷阱是:總以為所有的事情都有個對錯,總以為我們能把握所有的可能。這正是計算機的特點,開發者在寫軟體的時候,必須周詳考慮所有的可能性,哪怕只有百萬分之一的機率發生也必須要在**中有所體現,否則軟體就是有bug有隱患的。

一旦形成這樣思維習慣,就很難從開發者崗位轉向管理類的工作,因為開發崗位面向的是機器,是數學,而管理崗位面向的是人,是情感。人和情感是無法通過數學來精確表達的,否則就會鬧笑話。

比如,乙個程式設計界的老大,跨界去做管理做營銷,在分析客戶性質的時候,他會詳細列出客戶的所有可能性,乙個**過來,根據這個這個,客戶就怎樣怎樣,根據那個那個,客戶就那樣那樣。整個客戶分析流程其實就是一段**,所有的邏輯都是if……else……,所有的人都變成了資料節點,所有的行為都是可控和確定的,這樣的分析報告,是一文不值的。

剛剛開始進入程式設計開發行業的同學們,以後的職業生涯還很遠,路很長,時刻提醒自己是否陷入了機器思維,能讓你在將來更具競爭力!

思維的陷阱

最近在做介面測試的時候遇到乙個不算太大的問題,但卻值得深思,先說說問題的背景,還有我一步步修復這個問題的過程。大家都知道,當應用程式對資料庫進行寫操作的同時往往都會記錄下最後一次寫操作的時間,有時候我們需要對這個時間進行檢查,既檢查我執行了寫操作以後,我期望的時間欄位被更新為當前時間。好像很簡單嘛,...

C語言 數字陷阱

題目 對任意乙個自然數n 0 n 0 n 0 先將其各位數字相加求和,再將其和乘以3後加上1,變成乙個新自然數n 1 n 1 n 1 然後對n 1n 1 n1 重複這種操作,可以產生新自然數n 2n 2 n2 多次重複這種操作,運算結果最終會得到乙個固定不變的數n kn k nk 就像掉入乙個數字 ...

C語言的小陷阱

踩坑時間 2019 5 13 2019 5 17 char str header null str body null 正確的應該是 char str header null str body null 這個錯誤讓我遭受了乙個執行時錯誤,給str body分配一段堆記憶體,平安無事,再向記憶體中拷貝...