【讀書筆記】程序員們需讀的一本書《軟技能:代碼之外的生存指南》 | 約翰 Z.森梅茲

這本書用微信讀書第二小的字體來看也有一千多頁,看了蠻久了。從年前還是在學校時候就開始刷了,講了十幾個章節,分版塊來介紹程序員這條路上應當注意的一些事項。各方面都考慮到了,除了社會關係(感情之類的)基本上身體健康、經濟情況、個人發展都涉及到了。教做人的書國內有很多,暢銷榜上長期有許多立足人設虛心向各位入門社會的同學們介紹踩坑方向的熱銷冊。

當然我也看了不少,也接收了不少雞湯。去年夏天定下來走向社會,決定成爲一名光榮的程序員,本來還是在人民教師和開發中搖擺了一下,目測了“心流”狀態在程序員角色期間出現更多。爲了更好地探索自我,只好暫時犧牲頭髮和腰椎。

閒話不多說,還是老規矩。先放豆瓣評分,再是筆記加批註。(預警一下這一篇非常的長,長到我的微信沒有辦法發送,嘗試有道雲筆記、郵箱各種方式,格式發生改變,最後使用Zine排版軟件,轉而用wps轉發才實現。

文中◆跟的是標題;>> 跟的是看到就有觸動,想跳起來鼓掌的話;“規則”這個顏色這個字體是自己結合當下心境寫的想法。

 


軟技能:代碼之外的生存指南-約翰 Z.森梅茲-135個想法


◆ 前言


看着一段有些心酸。
>我從來沒覺得有誰爲我披荊斬棘,開闢出一條小路使我可以因循,也從來沒覺得有誰可以告訴我如何成爲一名最成功的軟件開發人員——不能只編寫代碼,還要有精彩的人生。


這也是我讀這本書入手的原因。可以崇拜誰,可以喜歡誰,只能遵從自己,唯一能改動的大概是慢吞吞的性情習慣了吧。
>· 幫助你成爲更好的自己;


◆ 第一篇 職業
>> 要做什麼,什麼時候做,以及如何義無反顧。


◆ 第2章 從非同凡響開始:絕不要做他人都在做的事
>> 集中精力成爲一位專家,專門爲某一特定類型的客戶提供專業的整體服務


◆ 第3章 思考未來:你的目標是什麼
>> 你希望自己5年或10年後在哪裏?
>> 定期覈對自己的目標
>> 月度目標;
 周目標;
 每日目標。


◆ 第5章 破解面試之道
採取行動,而不是等到面試前一夜,和簡歷上端方正直的證件照面面相覷,企圖用運氣或者眼緣混過去。
>採取行動
即使你現在不需要努力找工作,也要整理一份清單,列出你想去工作的公司,以及你認識的這些公司的人。


◆ 第7章 你是哪類軟件開發人員
>> 採取行動
 列出你能想到的所有軟件開發的專業領域。
>> 你當前的專業領域是什麼?
>> 去主流的招聘網站上看看自己的專業領域市場行情如何。


◆ 第8章 公司與公司是不一樣的
>> 關注快速增長,竭盡所能讓公司盈利,或者達成其他一些迫切目標
>> 花點時間思考自己喜歡什麼樣的工作環境,多大規模的公司符合你自己理想中的工作環境?


◆ 第10章 成爲專業人士
>> 《習慣的力量》


◆ 第11章 贏得自由——如何辭職
>> Cal Newport的So Good They Can’t Ignore You
>> 追蹤每天的工作時間,瞭解當前你是如何度過每一天的。找出自己每天真正刻苦、高效工作的時間到底有多少,結果可能會讓你大吃一驚。


◆ 第13章 創建你的第一個產品
包括要完成的專利技術在內,需要解決實際的問題……產品才能立足
>人類創造出的每個產品(包括這本書在內)都是爲了解決某個特定的問題。
>> 軟件開發人員如何自我營銷
>> 如果你想儘可能縮短自己的學習曲線,你就需要儘量縮短開始行動到看到成果之間的週期。
>> 《精益創業》(The Lean Startup)[Crown Business, 2011]


◆ 第14章 你打算開始創業嗎
>> 種子輪之後的第一輪融資通常被稱爲A輪融資
>> 採取行動
 研究一下一兩家你心儀的創業公司的歷史。注意它們是如何開始以及如何獲得融資的。
 這些公司創立時是一個創始人還是多個創始人?
 這些公司的創始人還成功創立過其他公司嗎?
 這些公司什麼時候獲得融資的?它們獲得了多少資金?
 這些公司啓動的時候是否加入了加速器計劃?


◆ 第15章 遠程工作的生存策略
>> Daniel Pink的《驅動力》(Drive)[Riverhead Hardcover,2009]
>> 別想着靠意志力去戰勝誘惑,這個教訓適用於生活的許多方面。相反,排除誘惑,你會生活得更輕鬆自如。


◆ 第19章 針對“碼農”的營銷基礎課
>> 對於自己成爲怎樣的人、給世界呈現怎樣的形象,你要謹慎決定。


◆ 第20章 打造引人注目的品牌
>> 選擇某個細分市場,然後以它爲核心建立你的品牌,越有針對性越好。


◆ 第21章 創建大獲成功的博客
>> 持之以恆地堅持寫作,堅持不懈地產生高品質的內容


◆ 第22章 你的主要目標:爲他人增加價值
>> 要想讓自我營銷的所有努力奏效,基本的方法就是幫助他人獲得成功。
>> 能解決他人的問題,真正能夠幫到他人,你更容易獲得成功。


◆ 第24章 演講、報告和培訓:做“說話的極客”
是的,首先要克服對未知的恐懼感,對人羣的擔憂。
>作爲人類,我們擁有良好的適應能力。只要你把一件事情重複足夠多次,你自然就會接納它。


◆ 第25章 著書立說,吸引追隨者
>> 你也應該提前做功課從而讓自己在市場上立足。
>> Leanpub(http://simpleprogrammer.com/ss-leanpub)


◆ 第28章 我的“十步學習法”
>> 1.如何開始——要想開始使用自己所學的,我需要掌握哪些基本知識?
>> 2.學科範圍——我現在學的東西有多宏大?我應該怎麼做?在開始階段,我不需要了解每個細節,但是如果我能對該學科的輪廓有大致的瞭解,那麼將來我就能發現更多細節。
>> 3.基礎知識——不止在開始階段,要想使用一項特定的技術,我需要了解基本的用戶案例和最常見的問題,也需要知道自己學的哪20%就能滿足80%的日常應用。


◆ 第29章 第1步到第6步:這些步驟只做一次
>> 美國前國防部長唐納德·拉姆斯菲爾德曾說過“未知之未知”(unknown unknowns)


◆ 第31章 尋找導師:找到你的尤達
讀書是真的有一點點幫助,對混沌世界有了一點認知。
>我找來一些房地產投資方面最好的書,從這些“虛擬導師”身上我學會很多東西。除了閱讀他們所寫的內容,我還嘗試去理解他們是如何決策的以及爲什麼做這樣的決策的。
>> Napoleon Hill的《思考致富》


◆ 第32章 開山收徒:成爲尤達一樣的大師
>> 身爲一名導師,要客觀地看待別人的問題並提供相應的解決方案
>> 要找真正有意願去學習,並願意爲此付出努力的人做自己的門徒。


◆ 第33章 傳道授業:若要學知識,必得爲人師
>> :心態謙卑,信心滿滿


◆ 第35章 發現自己的知識短板
>> 時刻都要試圖瞭解自己不理解或不清楚的事物。你可以維護一份清單,列出自己需要去研究或者自己不清楚的所有事物,追蹤有哪些主題總是不斷出現在這個清單上。
>> [插圖] 在接下來的幾天裏隨身帶着一個記事本,把自己遇到的不明白的地方都記下來。[插圖] 在談話中遇到自己不明白的地方,即使覺得尷尬,也要有意識地提問。[插圖] 明確自己一天中的某些“痛點”,通過彌補自己知識上的短板,找出消除痛點的方法。


◆ 第36章 一切始於專注
完全沒錯,我就是這樣的。不進入幹活狀態還好,進入就是老僧入定,噌噌噌~給待辦打勾…
>要想進入這種狀態常常需要費點兒時間,但是一旦找到這種狀態,你就能在短期內完成很多任務


◆ 第37章 我的私房“生產力提升計劃”
>> Marcus Hammarberg和Joakim Sundén合著的《看板實戰》(Kanbanin Action)[Manning,2014]
>> 每個月的第一天我會打印出當月的月曆,並且規劃出每天要完成的工作。
>> Trello(http://trello.com)的工具
>> Kanbanflow(http://simpleprogrammer.com/ss-kanbanflow)
>> 列出我每週必須要完成的所有工作,包括:[插圖] 寫一篇博客文章;[插圖] 製作一個You Tube視頻;[插圖] 爲該視頻撰寫一篇博客文章;[插圖] 錄製兩個播客;[插圖] 爲該播客撰寫一篇博客文章;[插圖] 轉錄和編輯我的播客;[插圖] 寫一份電子郵件簡訊;[插圖] 安排好我本週內要在社交媒體上發表的內容。
這也太棒了!完全說出我的心聲(我不敢大聲說出來
>我還會退出所有會讓自己不斷分心的聊天軟件,或者保持隱身狀態。我覺得聊天軟件完全就是浪費時間。在大多數情況下,電子郵件更爲合適,因爲我可以在閒暇時間回覆,而不會在正專注工作的時候被打斷。


◆ 第38章 番茄工作法
>> 每人每天能夠專注地、富有成效地工作的時間是有上限的。


◆ 第39章 我的“定額工作法”:我是如何做到超額完成工作的
>> 定額工作法的規則[插圖] 挑選一項重複性任務。[插圖] 明確有效時限,在此期間該任務被重複執行。[插圖] 明確在給定的有效時限內該任務應該完成的次數的定額。[插圖] 給自己承諾:一定要達成定額。[插圖] 調整。
>> 列出自己生活中需要重複做的所有任務。特別要專注於那些目前你還無法持續完成但一旦完成就會從中受益的事情。


◆ 第40章 對自己負責
自我責任感的培養,我負責,將我這個獨立的個體,獨立的人格,將所富含的工作熱情與能力潛力全部發揮出來,用於實現自我完成有價值有意義的工作,並獲取相應的報酬。僅我個人,需負有全部的責任。
>培養出在沒有人監督自己的時候也能高效工作的自我責任感非常重要。
>> 它的功能就像一個責任監督小組。我們小組每週都會開例會,每個人都要講講自己在這周做了什麼和計劃做什麼。通過在小組內部討論每個人各自的計劃,我們互相監督計劃的落實情況。
>> 最重要的是要確保自己對自己的行爲帶有某種責任感。堅守自己設定的標準時,生產效率會高很多。


◆ 第42章 職業倦怠:我已找到解藥
雖不至於反胃,可這說的不就是我嗎?遇見障礙不斷否定自己,給自己強加指責,然後陷入“不想幹—幹不出來—我糟糕透了”的囹圄之中~難以掙扎。
>項目剛開始的時候,我們總是熱情高漲、精力旺盛,但是一段時間之後,即便我們再有激情,一想到它們也會讓我們反胃。


◆ 第43章 時間是怎樣被浪費掉的
>> Jason Fried和David Heinemeier Hansson合著的《重來》(Rewor)[Crown Publishing Group, 2010]。


◆ 第44章 形成慣例的重要性
>> 生產力的真正祕訣在於:長期堅持做一些小事
>> 每天你做什麼樣的決定塑造着未來的你。
>> 你必須要形成慣例,緩慢但穩步地向着自己的目標前進。
>> 一定要制訂一份日程,明確規定自己每天都做什麼,包括什麼時候開始工作,什麼時候停止工作
>> 每天的生活越有條理,就越能把控自己的生活。


◆ 第45章 培養習慣:刷新你的代碼
>> Charles Duhigg所著的《習慣的力量》(The Powerof Habit)[Random, 2012]
>> 習慣主要由三個要素構成:暗示,慣例和獎勵。


◆ 第47章 努力工作的價值,以及爲什麼你總是逃避努力工作
>> 賽跑比的是誰耐力更長久,而不是看誰衝刺更有力。——約翰·傑克斯,《北與南》(Northand South)
>> 自願咬緊牙關、硬着頭皮、開始工作


◆ 第48章 任何行動都比不採取行動好
>> 如果你願意採取行動,可能5分鐘內就能解決。


◆ 第五篇 理財
>> 是成爲百萬富翁,還是一生都靠薪水過活,選擇權在你自己,而且在很大程度上取決於你在財務管理方面的知識,以及世界金融系統運行原理方面的知識。
麻麻從小教我,錢是英雄膽,不要世俗,可經濟底氣要保證。這樣拋開一部分金錢因素,真的喜歡某個職業,就需要去深耕行業。
>你在職業生涯中做出的許多關鍵決策很大程度上是以財務狀況爲基礎的。身爲軟件開發人員,你也同樣受此影響。


◆ 第49章 怎樣支配你的薪水
>> 所謂資產,是指實用價值高於維護成本的東西
>> 你的房子實際上是一筆負債,而不是一筆資產。
>> 花點兒時間列出你的資產和負債清單。
>> 要想有朝一日真正成爲富人,我不僅要學會“節流”——不把自己的薪水浪費在負債上,還要學會“開源”——拿出薪水中的很大一部分進行投資,讓這些資產幫我賺更多的錢。
>> 在銀行存款100萬美元


◆ 第50章 怎樣進行薪酬談判
>> 你的薪酬談判能力很大程度上受聲望的影響
>> 爲了做到這一點,基本策略就是儘可能讓自己的名字出現在各種的媒體上。寫博客、做播客、寫書或文章、在大會或用戶組中發表演講、製作視頻教程、爲開源項目貢獻代碼等,盡一切可能讓自己的名字出現在各種場合。
>> 我寧願不告訴您我目前的薪水,因爲如果它高於您爲這個職位設定的預算,我不希望就因爲這個就丟掉了本次工作機會——因爲我願意爲了合適的職位適當降低收入水平。但是,如果它低於這個工作將會支付的薪酬,我也不想自貶身價。我相信您一定能夠理解。


◆ 第51章 期權:所有樂趣之所在
>> 期權背後的基本思想就是允許某人爲在未來的某個日期買入或賣出股票的權利付費
>> 資本負債和風險的方法——這是定義期權特徵的兩個關鍵。
>> 允許在未來一段時間內以固定價格購買股票的期權被稱爲“看漲期權”,允許在未來一段時間內以固定價格出售股票的期權被稱爲“看跌期權”。
>> 沽出期權”(writing an option)
>> Michael Benklifa撰寫的Profiting with Iron CondorOptions:Strategiesfromthe Frontlinefor Tradingin Upor DownMarkets[FT,2011]。


◆ 第52章 房地產投資面面觀
>> 以租養貸
>> 世上沒有免費的午餐。要想從房地產投資中獲得鉅額回報,需要投入耐心、勤勉和大量時間。
>> 購買一處租賃房產。這套房產要麼是正向的現金流,要麼用30年期固定利率貸款以租養貸。


◆ 第53章 你真的瞭解自己的退休計劃嗎
>> 精確計算每個月的生活費用,找出辦法來確保自己的收入能滿足這一要求,同時還留有餘地,以備不時之需。
>> 勤儉節約,才能細水長流。
>> 你必須循序漸進,始終以增加被動收入爲目標。
>> 這一差價是由於居住成本而導致的生活成本的增加。
>> 如果能開始一份兼職,或者做一些自由職業,那就動手做吧。你賺的錢越多,可用於投資的資本就越多。


◆ 第54章 債務的危害:社保債務代價昂貴
>> 一定要根據利率高低來排清償債務的優先級。


◆ 第55章 額外饋贈:我是如何做到33歲退休的
>> 即財務自由——一種不會囿於財務狀況被迫用自己別無選擇的方式將自己的時間花費在不合心意的事情上的能力。
>> 我削減各種開支,省下我賺到的每一分錢,並且立刻進行聰明的投資。
>> 如果我沒有很好地營銷自己,讓自己脫穎而出,也就不可能有機會做Pluralsight課程。
>> 運氣是必要的。
>> 是你給自己創造運氣。如果你腳踏實地、努力工作,總是嘗試提升自己和周圍的人,那你獲得好運氣的可能性會大大增加。


◆ 第57章 設定你的健身標準
>> [插圖] 在某些運動上表現更好
>> 將自己的大目標分解成若干更小的里程碑,這些里程碑組合在一起給我標識出通往成功之路。
keep 45kg。
以前這個目標是50kg,現在發現已經實現了,那麼“保持這個重量”、“增強一定代謝能力”、“增強體質-運動耐力”這個樣子就好了吧。
爲了達到這些目標,首先我得早起,有點難,因爲早起必須保證晚上睡得。
好吧,換一個,一週打一到兩次羽毛球,去健身房一到兩次(跑步半小時)。騎車上下班(中途換走路)。每天不剩飯(菜不能保證)。
從高效辦公,規劃工作安排與上下班開始。
看書,興趣,近期目標,長期目標。刻畫自我,刻意練習,每日精進。

>採取行動[插圖] 確定一個大的健身目標,寫下來。[插圖] 接着,列出一系列切合實際的里程碑來實現這一目標。[插圖] 確定自己實現第一個里程碑要採取的行動。


◆ 第58章 熱力學、熱量和你
>> 從能量的角度來講,一磅脂肪約等於3500卡路里。如果想減掉一磅脂肪,要消耗掉的熱量要比吃進身體的熱量多出3500卡路里
>> 你的身體需要一定數量的熱量來維持生命。這部分基礎熱量被稱爲基礎代謝率,即BMR


◆ 第59章 動力:讓你的屁股離開椅子
>> Kelly Mc Gonigal所著《自控力》(The Willpower Instinct)[Avery,2011]
類比打卡,同樣,睡前小看會兒書的長久習慣被打斷,連睡眠也不夠穩定起來。
>有時候,只是知道自己走了很遠就能帶來足夠的動力繼續前行在這條路上。人人都討厭打破長時間的連勝紀錄。
>> 試着通過提前計劃,儘可能減少生活中的各種抉擇。準確知道自己每天要吃什麼、做什麼
>> 時間短暫,如果想在生命中做某件事,現在就去做。


◆ 第60章 如何增長肌肉:書呆子也能擁有強健的肌肉

偷偷地講,我有點想要一些肌肉!
>> 的目標是增強力量,那麼每次練習的重複次數是1~6。
>> 每次重複練習中你都要舉起自己能舉起的最大重量。
>> 肌肉增大主要是通過中等的重複次數和適量的休息間隔實現的
>> 延遲性肌肉痠痛症(DOMS)
>> 深蹲
>> 深蹲、硬拉、臥推和槓鈴推舉


◆ 第61章 如何獲得完美腹肌
背後的付出需要大衆瞭解,類比其他行業。
>,如果你對職業健美運動員和健身模特用來減脂的極端減脂藥劑感到好奇,不妨搜索一下“DNP”(2,4-二硝基苯酚)。這種毒性巨大的化學物質基本上會關閉你的線粒體,停止小學生都知道的ATP(三磷酸腺苷)循環,然後你的整體身體變成一個有毒容器。(聲明:不要隨便使用DNP、合成代謝類固醇或者任何其他非法物質去減肥或者增肌——這不值得,你有可能會失去生命。)


◆ 第62章 啓動跑步程序
>> 跑步是治療輕度抑鬱的天然良藥,能讓你自我感覺更好。
>> 增強膝蓋和其他關節,提升骨密度,降低罹患癌症的風險,也能延長壽命。


◆ 第65章 心靈是如何影響身體的
>> 我們有能力克服這個基本的生物過程,因爲我們有意識,我們有選擇的自由,我們有自由的意志。
>> Rhonda Byrne的暢銷書《祕密》(The Secret)[Atria Books/BeyondWords,2006]


◆ 第66章 擁有正確的心態:重新啓動
>> 通過堅定地、持續不斷地、有意識地重複做一件事情,直到由潛意識來掌握大局。
>> Norman Vincent Peale寫的《積極思考就是力量》(The Power of Positive Thinking)


◆ 第67章 構建一個積極的自我形象——規劃你的大腦
熱愛工作,熱愛生活。
離開愛人家人,也能很好的愛自己。
儘可能的簡潔,儘可能的隨意,儘可能的習慣這樣子。

>一開始,設定一個你想成爲的清晰形象。你的大腦有驚人的能力去尋找擺在它面前的任何目標。
>> 列出你的優點和缺點。
>> 你覺得這份清單上有哪些方面是無法改變的?爲什麼?想想這些方面是永久性的,還是隻是因爲你的信念給你自己帶來了侷限。


◆ 第68章 愛情與戀愛:計算機無法牽着你的手
這樣來想,得到的拒絕好像好受的多。
>所有那些拒絕最終都會把你帶到一個想和你在一起的人那裏,這總比和不想和你在一起的人在一起要好很多。


◆ 第69章 我的私房成功書單
>> Steven Pressfield的The War of Art[Black Irish Books,2002]
>> Steve Mc Connell的《代碼大全》(Code Complete)[Microsoft Press,2004]
>> Robert Martin的《代碼整潔之道》(Clean Code: A Handbook of Agile Software Craftmanship)[Prentice Hall,2008]
>> Eric Freeman、Elisabeth Robson、Bert Bates和Kathy Sierra的《Head First設計模式》(Head First Design Patterns)[O’Reilly Media,2004]


◆ 第70章 積極面對失敗
我的天,下班回來,跟小w同學抱怨自己的不足,輕微泄氣然後哩翻到這一頁,讀書真的能治癒我。
>畏懼失敗似乎是大多數人的本能。人都喜歡做自己擅長的事情,逃避做那些自己不能勝任的或是缺乏技能的事情。我們似乎與生俱來就畏懼失敗。
>> 我們往往太過較真,把失敗看得太重。因爲我們接受過把失敗看作通往成功道路——很多情況下這也是唯一的一條道路——的訓練,所以我們不惜任何代價地避免失敗。
包括感情,和人相處。熱情不是最佳,可冷淡也不算優解。只能慢慢探尋碰壁退縮遺忘再次試探。
>生活中所有值得擁有、值得去完成的事情都需要經歷失敗。


◆ 附錄A 如果你能寫代碼,你就能理解金融
>> 在高通脹期,你最好用自己的錢做投資,或者借些貸款,因爲錢放在銀行會貶值,而通脹增加時債務反而會減少。在通縮期,則正好相反——你需要儘可能地消除債務,因爲即使你什麼都不做錢也在增值。


◆ 附錄B 股市是如何運作的:系統的遊戲規則
>> 當一家股份制公司首次在股市銷售股票時(銷售股票也被稱作“交易”),這個過程被稱爲首次公開發行(Initial Public Offering,IPO)
>> 造市商(market maker)
>> 道瓊斯工業平均指數(Dow Jones Industrial Average)


好了,分享到這就結束了,以上是這本書我閱讀過程中的一些筆記和想法,長評來說,因爲作者本身是健美運動員(做過一段時間模特和運動員),所以運動健身方面個人營銷方面做得非常成功,通過以租養貸的方式也成功讓他變成自由工作者,同時保持身材,走了一條適合自己的路,同時提到的許多問題都非常實用,即使存在文化背景差異,也確實帶來不少營養。

不足的地方是,無意中註冊了一下穩重不斷提到的個人網站,從此郵箱中不定期(非常頻繁)的會收到郵件騷擾,之所以定義爲騷擾,是因爲我這種懶得處理郵件星人,基本上只會在一週結束時候稍微掃一兩眼賬單或者廣告之類的(除非給特定朋友回覆郵件),對於輕微郵件廣告都可以接受的同學,感受到了過於高頻的關心。於是,在這個方面可能感受到有些營銷味道,對於內容來說,邏輯清晰,整體規劃比較全,如果其中部分議論使用開放性態度可能會更合適,比如:健身建議之類。

因爲健康問題,目前來說,應該是廣大搬磚選手比較關心的方面,當然,漲薪是另一方面。打造個人品牌是一方面,通過寫博文,製作課程,廣泛交友露臉等方式確實能保證一定的曝光度,但諸君所言,國內現在缺的應該不僅僅是敢於表現自己的技術人員,更是心懷一些工匠精神,打磨技術,鑽研業務,不僅僅止步於苟活的一線碼農們。

今年就業形勢慘峻,多少人趴在岸邊渴求一撈,我也相當的害怕。不然也不會這麼久都沒有完成指定的課程計劃和安排。可緊張歸緊張,希望包括我在內的各位,通過各種方式的汲取前輩經驗,在不損害自身健康的前提下多多集福報,積攢自身實力,隨着秋招大幕的拉開,能夠找到合適自己的,心滿意足的去處。

讀這本書,本就是爲了更好地找到自我,匹配的板塊。

還是那句話,“刻意練習,每日精進”。

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章