從編程小白到完成第一款 Web 應(yīng)用,我只用了 90 天,而且大多數(shù)時間都是在苦惱自己是否能成為開發(fā)人員,真正寫代碼的時候只有 30 天。
通過這場充滿自我懷疑的旅程,我總結(jié)出了一些令人難忘的教訓(xùn):
學(xué)習(xí)編程之路充滿坎坷,直到有一天我做出了一項(xiàng)改變。
為什么使用無代碼工具就是浪費(fèi)時間?
為什么充滿靈活性的產(chǎn)品往往最沒有用?
何時學(xué)習(xí)編程最合理,以及如何在沒有正式培訓(xùn)的情況下學(xué)習(xí)編程?
一連串的失敗
當(dāng)計(jì)算機(jī)科學(xué)流行的時候,當(dāng)我認(rèn)為學(xué)習(xí)編程可以幫助我成為一名項(xiàng)目經(jīng)理的時候,當(dāng)我想證明自己可以“成為技術(shù)人員”時,我曾嘗試過編程,但都失敗了。
每一次,我都在不知不覺中犯了同樣的錯誤:我更喜歡編程的想法,而不是動手實(shí)踐。所以,每當(dāng)課程很無聊或遇到困難時,我都會放棄。放棄的次數(shù)太多了,部分原因是:我不是當(dāng)程序員的料。
教訓(xùn):除非實(shí)際嘗試過,否則就不要否定自己。
如果真的想嘗試編程,就找一個自己喜歡的項(xiàng)目。當(dāng)你充滿動力想要實(shí)現(xiàn)某個應(yīng)用時,一切都會有所不同。
在(虛擬)教室中學(xué)習(xí)編程的風(fēng)險太低,即使編寫的功能現(xiàn)故障,我也不會擔(dān)心。但是如果我的網(wǎng)站上的過濾器出現(xiàn)故障,我就會感到難為情,并在互聯(lián)網(wǎng)的每個角落尋找修復(fù)方法。建立一個項(xiàng)目會強(qiáng)迫自己把代碼寫好。
我犯的另一個大錯誤是等待無代碼工具來拯救我。
無代碼工具的真相
圍繞無代碼或低代碼的炒作有很多,以至于你會誤以為學(xué)習(xí)編程不是必須的。
如果你想構(gòu)建一個博客網(wǎng)站或登錄頁面,那自然沒問題。你有很多選擇,比如Typedream、Carrd、Webflow(難學(xué),但百分百可定制)。你可以通過拖拽的方式制作精美的產(chǎn)品,從而產(chǎn)生一種“如今一切皆有可能”的錯覺。
實(shí)際上,這些工具非常好用的原因就在于它們非常不靈活,只能創(chuàng)建靜態(tài)網(wǎng)站。
如果你想制作一個簡單的 Web 應(yīng)用,例如根據(jù)用戶的輸入從數(shù)據(jù)庫檢索信息,那么不動手寫代碼幾乎是不可能的。我前后嘗試了5~6個糟糕的無代碼原型,才意識到這種方式根本行不通。忽視產(chǎn)品開發(fā)的萬有引力定律是很愚蠢的想法……
易用性與靈活性
每一款易于使用的產(chǎn)品背后,都有人付出了艱辛的工作。首先,需要深入理解特定用例,然后再下一番功夫盡可能簡化常用操作。這意味著減少操作步驟,或者一目了然,通常兩者兼而有之。
問題在于,可以簡化的功能是有限的,屏幕空間就是天然的限制。看看下面這個導(dǎo)航欄:
如果不限制靈活性,就無法保證易用性。你需要在二者之間權(quán)衡利弊,這也解釋了為什么無代碼工具吹噓的“完整的功能”和“完全自由的設(shè)計(jì)”根本無法實(shí)現(xiàn)。
Bubble是一款被人看好的產(chǎn)品,但結(jié)果卻不盡如人意。盡管籌集了 1 億美元的資金,卻充斥著漏洞和劣質(zhì)流量。說到這里,如果你在嘗試無代碼構(gòu)建器的過程中發(fā)現(xiàn)了一些 bug,則請遠(yuǎn)離,永遠(yuǎn)不要回頭。
繼承功能和bug
選擇無代碼工具就相當(dāng)于以低廉的成本雇傭了他們的產(chǎn)品開發(fā)團(tuán)隊(duì)。在此,我有兩個重要的警告:
你也繼承了他們的 bug 和響應(yīng)能力:如果他們是二流團(tuán)隊(duì),則你的產(chǎn)品最多只能達(dá)到二流質(zhì)量;
你不僅需要支付費(fèi)用,還要承擔(dān)學(xué)習(xí)其系統(tǒng)規(guī)則和怪癖的時間。
靈活性從來都不是免費(fèi)的。代價是易用性降低,以及更有可能出 bug,因?yàn)榭赡艹鲥e的地方更多。
盡管無代碼工具有著種種看不見的缺陷,但在下列情況,這些工具仍然可以節(jié)省你的時間:
找到適合的解決方案(例如,Soft:出色的可視化前端;Retool:可用于內(nèi)部工具的出色前端);
學(xué)習(xí)速度很快,而且還提供了能夠滿足最低可行產(chǎn)品的功能。
然而,如果想獲得面向客戶的 Web 應(yīng)用的全面控制權(quán),最大的捷徑就是挑戰(zhàn)最大的難題:學(xué)習(xí)編程。
編程才是捷徑
我以為學(xué)習(xí)編程需要花費(fèi)幾年的時間,我以為我會無聊死,而且還無法獲得任何好處。然而,事實(shí)證明,編寫自己的項(xiàng)目情況完全不同。一旦掌握基礎(chǔ)知識,編寫程序的速度就會很快,而且利用基礎(chǔ)知識就能完成很多功能。
整體的感受:
不能馬虎:思考馬虎的想法很容易,但記錄馬虎的想法很難,而將馬虎的想法編寫成代碼則更難。
深刻地體會到了工程師的不易。
通過一行又一行的代碼構(gòu)建產(chǎn)品能產(chǎn)生巨大的滿足感。
擺脫無代碼的約束。
學(xué)習(xí)如何使用無代碼工具是創(chuàng)業(yè)需要付出的代價,但學(xué)習(xí)如何編程是對自己的投資。如果你擁有一些想要構(gòu)建的想法,并計(jì)劃一遍又一遍地使用學(xué)習(xí)到的編程技術(shù),那么投資回報(bào)率是巨大的。
為了尋找合適的無代碼工具,我浪費(fèi)了大量時間,最后反而是自學(xué)編程救了我。如果你也想擁有靈活性和易用性,那么就自己動手吧。
最后是一些學(xué)習(xí)編程的注意事項(xiàng):
選擇一種流行的編程語言,最好與英語很接近。我選擇了 Python Django,因?yàn)楹唵我讓W(xué),還擁有一個龐大的在線社區(qū),這很重要,因?yàn)閷τ谀阌龅降膯栴},網(wǎng)上都提供了常用的解決方案。
編寫代碼=主要是修改別人的代碼。我所有的代碼都受到 Stack Overflow、JSFiddle 和 YouTube 上的解決方案的啟發(fā)。
如果你不知道如何修改別人的代碼,請參加短期課程,但不要在理論上停留太久,只有能夠應(yīng)用到自己的項(xiàng)目中的概念才能真正發(fā)揮作用。
在學(xué)習(xí)教程時,請確保下載最新的軟件包。一些優(yōu)秀的視頻很老,而且使用的是過時的軟件包,編寫代碼后升級可能會破壞功能。
95%的時間都會浪費(fèi)在5% 的問題上,這 5% 的問題會讓你欲哭無淚,但不要害怕,告訴自己這樣的問題只有 5%!你可以在這些問題上發(fā)揮創(chuàng)造力。
如有疑問,請盡管嘗試!嘗試每一種變化;隨著時間的推移,你的預(yù)感會變得敏銳起來。
最后,我想向 Python Django 的開發(fā)人員致敬!
責(zé)任編輯:haq
-
Web
+關(guān)注
關(guān)注
2文章
1262瀏覽量
69441 -
編程
+關(guān)注
關(guān)注
88文章
3614瀏覽量
93686 -
代碼
+關(guān)注
關(guān)注
30文章
4779瀏覽量
68525
原文標(biāo)題:我只用了 30 天的時間就學(xué)會了編程
文章出處:【微信號:coder_life,微信公眾號:程序人生】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論