比特幣

如何選擇你的第一個技術棧


拇指1

如此眾多的框架,而時間卻很少。省去麻煩,選擇

AZGAN MjESHTRI在Unsplash上​​​​的照片AZGAN MjESHTRI在Unsplash上​​​​的照片

這些年來在科技行業。我向你保證,我擁有應有的技術水平。旨在以不同方式實現同​​一目標的眾多不同框架。喜歡不同技術堆棧的團隊。無論你學到什麼,都可以適應多快。

在本文中,我可能不會為你提供應選擇的答案。因為我相信你應該找到適合自己的東西。我只想解釋一下我選擇堆棧時的想法。

工作棧

剛開始擔任軟件工程師的工作時,你會意識到,你最初無法決定公司將使用哪種技術堆棧。你將需要更多的代表和力量來做出這些決定。

因此,你會陷入使用VB 6.0的舊系統的困境。可能那不是你的選擇。如果你曾經使用過該死的VB 6.0,那麼多年來的編程水平是如何提高的。不,這不是對VB 6.0的認可。

在我的公司中,我們主要使用C#和PHP。我剛開始時曾使用C#和ASP.NET MVC進行指導,然後在第二年繼續使用PHP和CodeIgniter。所以選擇是在這兩者之間。

我選擇了C#。為什麼?好吧,這是主觀的部分。 PHP不是我的語言。它太靈活了,並且有太多的語法可以做同樣的事情。我的經驗是使用PHP5,現在使用PHP7已有所改善,但是我已經在C#上投入了更多時間。

這裡的要點是,你可以選擇以當前雇主使用的現代語言來加深你的技能。這樣會更容易,你可以使用雇主選擇的語言來建議一些很棒的東西的實現。

例如,最近在執行多線程後台服務任務時。使用C#和.NET Core確實幫助我為雇主制定了一個完美的解決方案。

最好的部分不是解決方案,最好的部分是團隊中的任何人都可以維護你的應用程序。協作將很容易,因為你公司的工程師普遍理解所使用的語言。

唯一的缺點是缺乏自由。你不能將自己的意志強加給雇主,而且,如果你嘗試掌握另一種語言,則最終會同時學習兩件事。這取決於你個人,但我希望避免這種情況。

瑞士軍團

哦,瑞士軍隊聽起來不錯,不是嗎?

這種特定的堆棧主要由一種語言組成,具有針對不同情況的多個不同框架。一個很好的例子就是Javascript / NodeJS生態系統。

Java腳本

這裡誰不認識NodeJS?查一下

通常使用React,Vue或Angular等前端框架。它們都使用Javascript / Typescript。那麼,為什麼要去學習除Java語言之外的另一種語言呢?只需將Express用於後端即可。我們在這裡使用完整的Javascript。

嘿,你知道Javascript也可以做AI嗎?可以,有一個名為Tensorflow.js的庫。現在,不要告訴我這並不令人驚奇嗎?

需要明確的是,我並不主張使用Javascript。它只是具有許多功能的那些語言之一。另一個示例是Python,可能還有Dart。

蟒Serpent

我不認識你,但是Python現在仍然很熱門。它仍然沒有失去吸引力,易於使用。你可以使用Python,Web應用程序,API,AI應用程序,後台服務等來做很多事情。

據我所知,Javascript生態系統的AI庫還不如Python成熟。 Python是AI的主要入門語言。 Youtube AI編程教程通常使用Python完成。一些例外是使用Javascript,但我的觀點仍然成立。

但是Python確實吸引了前端編程。 Java GUI在構建方面擊敗了Python。

老實說,這應該是一個光榮的提及。但是,由於環境非常有趣並且具有一定的潛力,所以我認為我會加以介紹。

因此,Dart背後的主要力量是Google的Flutter。至少可以說,用於桌面,移動和Web的多平台前端框架的前景非常廣闊。

當然,JavaScript具有多平台框架。有React Native。但這僅適用於React。因此,移動和網絡。 Electron.js怎麼樣?當然,它適用於台式機。但是,只有Flutter會規避這三個問題。

後端雖然。它沒有那麼有前途。我知道使用Dart的唯一後端框架可能是Aqueduct。坦白地說,我還沒有時間進行研究。所以我不知道它是否已經可以投入生產。

在這三種語言中,我會說Dart是最不成熟的技術堆棧。不成熟的技術棧可以為新開發人員帶來為開源生態系統做出貢獻的機會,但是不利的一面是非常不穩定的生態系統。

成熟的堆棧

用什麼定義成熟?這些技術堆棧已經存在了一段時間。經過了實戰測試,許多應用程序正在使用它們。

例如,對於Web框架,成熟的框架將是C#的ASP.NET,Java的Spring,Python的Django,PHP的CodeIgniter,Symfony和Ruby on Rails。這些是2002-2006年間開發的最古老的技術堆棧。許多公司應用程序都使用這些框架。

僅當你想加入大型公司時,對這些技術堆棧有所了解才是好事。新興公司的技術棧大不相同,這並不是因為這些框架不好。但是,因為今天存在更多的生產就緒選項。

我個人已經嘗試了3個前面提到的框架。 ASP.NET,Django和Ruby on Rails。 。 Django對我來說總是太複雜了,我更喜歡使用Flask進行Python Web開發。在Linux上託管ASP.NET應用程序很困難,因此我也對此進行了介紹。

那麼,我應該選擇哪個呢?

現在,這是值得懷疑的地方。

把它和一粒SALT一起吃,自己嘗試一下。有比我在這裡寫的更多的可用技術。

如果你不喜歡工作棧,那麼可以將其僅用於專業目的,並嘗試使用自己喜歡的技術棧找到另一份工作。你無能為力。

我的簡單指南是精通一種面向對象的語言和一種腳本語言,如果你幸運的話,它們兩者都是多平台的。

另一方面,我喜歡C#和.NET Core,所以這對我來說不是問題。我比Java更喜歡它,因為C#庫非常有用,並且對我來說已經太熟悉了。 .NET Core也是多平台的,並且與以前的ASP.NET版本不同,它可以在Linux上無縫運行。

我選擇的腳本語言是Python。用Python編寫非常簡單。我對語言給我帶來的靈活性感到非常滿意。這些庫也很成熟,並且由於我對AI著迷,因此在Web應用程序中實現AI模型是無縫的。

看到我的選擇,你可能會感到奇怪。 “嗯,所以C#和Python。 它們都不是後端語言嗎?”,你是對的。好吧,除了C#Blazor。但是我並沒有那麼多地使用Blazor,所以我對此視而不見。

出於前端目的,我使用Javascript框架。這將我的功能限制為純Web應用程序,因為Javascript框架以其前端Web框架而聞名。但是學習Javascript的另一個好處是它是一種必備技能。 Javascript可以為前端和後端都具有生產就緒的環境,大多數公司都利用了這一優勢。

此外,JavaScript還有另一個好處,就是成為。這就是我的意思。有一個名為Netlify的服務。 Netlify託管JAM Stack應用程序,如果流量很小,則Netlify免費承擔費用。 JAM代表Javascript,API,標記。此外,Netlify還具有一項稱為Netlify Functions的服務。

Netlify JAM Stack託管價格截至2020年11月,圖片來自Netlify。Netlify JAM Stack託管價格截至2020年11月,圖片來自Netlify。

Netlify Functions利用無服務器技術以AWS Lambda為基礎,使用Javascript創建簡單的API。僅在大約125k個請求後才向你收費。

截至2020年11月的Netlify功能定價,圖片來自Netlify。截至2020年11月的Netlify功能定價,圖片來自Netlify。

我的下一個陳述可能引起爭議,但是我認為,將Javascript添加到知識庫中可以幫助你找到工作。它非常流行並且非常靈活。作為多平台,它具有成本效益,是許多現代初創企業的選擇。一些公司還計劃遷移到Javascript環境。

結論

所以?找到你的電話了嗎?不要著急沒關係。做你認為正確的事。如果你想全部學習,請成為我的客人。我已經處於要掌握概念而非框架的階段,因此我可以說我理解它的感覺。慢一點,但是可以肯定,你不會在一夜之間掌握所有內容。

“大師失敗的次數比初學者嘗試的次數還要多。” –

不要害怕嘗試。失敗只是一步。謝謝你,祝你有美好的一天

資訊來源:由0x資訊編譯自DATADRIVENINVESTOR,版權歸作者Agustinus Theodorus所有,未經許可,不得轉載