程式設計師 rs編碼_系統思考對於新編碼員而言一如既往的重要
程式設計師 rs編碼
spent some time with a young university student who came prepared. I was walking between talks and he had a sheet of paper organized with questions. We 與一個年輕的準備學習的大學生呆了一段時間。 我在會談之間走來走去,他有一張有問題的紙條。 我們 sat down and went through the sheet. 坐下來瀏覽了這張床單。One of his main questions that followed a larger theme was, since his class in South Africa was learning .NET Framework on Windows, should he be worried? Shouldn't they be learning the latest .NET Core and the latest C#? Would they be able to get jobs later if they aren't on the cutting edge? He was a little concerned.
跟隨一個較大主題的他的主要問題之一是,由於他在南非的課堂上正在學習Windows上的.NET Framework,他應該擔心嗎? 他們不應該學習最新的.NET Core和最新的C#嗎? 如果他們不在最前沿,他們是否能夠在以後找到工作? 他有點擔心。
I thought for a minute. This isn't a question one should just start talking about and see when their mouth takes them. I needed to absorb and breathe before answering. I'm still learning myself and I often need a refresher to confirm my understanding of systems.
我想了一分鐘。 這不是一個問題,只是應該開始談論,看看他們的嘴何時被他們抓住。 在回答之前,我需要吸收和呼吸。 我仍在學習自己,經常需要複習以確認我對系統的理解。
It doesn't matter if you're a 21 year old university student learning C# from a book dated 2012, or a 45 year old senior engineer doing WinForms at a small company in the midwest. You want to make sure you are valuable, that your skills are appreciated, and that you'll be able to provide value at any company.
不管您是21歲的大學生從2012年的一本書中學習C#,還是45歲的中西部一家小公司從事WinForms的高階工程師。 您想確保自己很有價值,您的技能得到讚賞,並且能夠為任何公司提供價值。
I told this young person to try not to focus on the syntax of C# and the details of the .NET Framework, and rather to think about the problems that it solves and the system around it.
我告訴這個年輕人不要試圖專注於C#的語法和.NET Framework的細節,而要考慮它解決的問題以及圍繞它的系統。
This advice was .NET specific, but it can also apply to someone learning Rails 3 talking to someone who knows Rails 5, or someone who learned original Node and is now reentering the industry with modern JavaScript and Node 12.
該建議特定於.NET,但它也適用於學習Rails 3的人與認識Rails 5的人或學習原始Node的人,現在正使用現代JavaScript和Node 12重新進入行業。
Do you understand how your system talks to the file system? To the network? Do you understand latency and how it can affect your system? Do you have a general understanding of "the stack" from when your backend gets data from the database makes anglebrackets or curly braces, sends them over the network to a client/browser, and what that next system does with the info?
您瞭解系統如何與檔案系統對話嗎? 到網路? 您瞭解延遲及其如何影響系統嗎? 從後端從資料庫獲取資料時,您是否對“堆疊”有一個一般的瞭解,將它們做成尖括號或花括號,然後通過網路將其傳送到客戶端/瀏覽器,下一個系統將如何處理這些資訊?
Squeezing an analogy, I'm not asking you to be able to build a car from scratch, or even rebuild an engine. But I am asking you for a passing familiarity with internal combustion engines, how to change a tire, or generally how to change your oil. Or at least know that these things exist so you can google them.
擠壓一個類比,我不是要您能夠從頭開始製造汽車,甚至不能重建引擎。 但是,我要求您對內燃機,如何更換輪胎或通常如何更換機油有所瞭解。 或者至少知道這些東西存在,所以您可以用谷歌搜尋它們。
If you type Google.com into a browser, generally what happens? If your toaster breaks, do you buy a new toaster or do you check the power at the outlet, then the fuse, then call the neighbor to see if the power is out for your neighborhood? Think about systems and how they interoperate. Systems Thinking is more important than coding.
如果您在瀏覽器中輸入Google.com,通常會發生什麼? 如果您的烤麵包機壞了,您是否要購買新的烤麵包機,或者先檢查插座的電源,然後檢查保險絲,然後致電鄰居,看看附近的電源是否斷開? 考慮一下系統以及它們如何互操作。 系統思考比編碼更重要。
If your programming language or system is a magical black box to you, then I ask that you demystify it. Dig inside to understand it. Crack it open. Look in folders and directories you haven't before. Break things. Fix them.
如果您的程式語言或系統對您來說是一個神奇的黑匣子,那麼我請您對它進行神祕化。 深入瞭解它。 開啟它。 查詢以前沒有的資料夾和目錄。 打破事情。 修復它們。
Know what artifacts your system makes and what's needed for it to run. Know what kinds of things its good at and what it's bad at - in a non-zealous and non-egotistical way.
瞭解您的系統製造了哪些工件以及執行它需要什麼。 以一種非熱忱,不自負的方式知道它擅長於哪些事情,以及劣勢在哪。
You don't need to know it all. In fact, you may dig in, look around inside the hood of a car and decide to take a ride-sharing or public transport the rest of your life, but you will at least know what's under the hood!
您不需要全部瞭解。 實際上,您可能會挖洞,在汽車引擎蓋內四處張望,並決定在整個餘生中乘坐拼車或公共交通工具,但至少您會知道引擎蓋下有什麼東西!
For the young person I spoke to, yes .NET Core may be a little different from .NET Framework, and they might both be different from Ruby or JavaScript, but strings are strings, loops are loops, memory is memory, disk I/O is what it is, and we all share the same networks. Processes and threads, ports, TCP/IP, and DNS - understanding the basic building blocks are important.
對於我所說的年輕人,是的。NETCore可能與.NET Framework有所不同,並且它們可能都與Ruby或JavaScript有所不同,但是字串是字串,迴圈是迴圈,記憶體是記憶體,磁碟I / O就是這樣,我們都共享相同的網路。 程序和執行緒,埠,TCP / IP和DNS-瞭解基本構建塊很重要。
Drive a Honda or a Jeep, you'll still need to replace your tires and think about the road you're driving on, on the way to the grocery store.
駕駛本田或吉普車,您仍然需要更換輪胎,並考慮在通往雜貨店的路上行駛的道路。
What advice would you give to a young person who is not sure if what they are learning in school will serve them well in the next 10 years? Let us know in the comments.
您會給一個不確定的年輕人提供什麼建議,他們不確定他們在學校學習的內容是否會在未來10年中為他們帶來好處? 讓我們在評論中知道。
Sponsor: Manage GitHub Pull Requests right from the IDE with the latest JetBrains Rider. An integrated performance profiler on Windows comes to the rescue as well.
贊助商:使用最新的JetBrains Rider從IDE直接管理GitHub Pull Requests。 Windows上的整合效能分析器也可以解決。
關於斯科特 (About Scott)
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.
斯科特·漢塞爾曼(Scott Hanselman)是前教授,前金融首席架構師,現在是演講者,顧問,父親,糖尿病患者和Microsoft員工。 他是一位失敗的單口相聲漫畫家,一個玉米種植者和一本書的作者。
About 關於 Newsletter 時事通訊 Hosting By 主持人翻譯自: https://www.hanselman.com/blog/systems-thinking-as-important-as-ever-for-new-coders
程式設計師 rs編碼