学习编程很难。这需要很长时间。人们似乎正在努力寻找捷径,以聪明的方式尽可能快地学习它。这是有道理的,因为您不想浪费时间。但是,这将是一个陷阱。您不必那么“聪明”就可以有效地掌握编码。
让我告诉你这意味着什么。
大家好,我是Takuya,来自日本的全栈开发人员。我独自构建了一个完整的应用程序,我几乎可以用我需要的任何语言编写。例如,我用 JavaScript、Java、Kotlin、Objective-C、Swift 和 C++ 编写代码来构建我的 React Native 应用程序。我还编写了 Python 和 Lua 来使用 DeepLearning创建视频艺术。“全栈”没有严格的定义,但在我看来,作为全栈开发人员并不意味着你什么都知道。
成为全栈开发人员意味着您可以根据需要快速采用新技术,就好像您无所不知。
理解编程范式
为什么有可能?因为编程语言之间没有显着差异。编码的范式基本相同,例如面向对象编程、数据结构、多线程等
。例如,无论语言如何,函数签名都是相似的。
比如说,你必须在某个数组中找到元素的索引。在 JavaScript 中,indexOf方法的签名如下所示:
array.indexOf(searchElement[, fromIndex])
第一个参数是要在数组中定位的元素。第二个参数是开始搜索的索引。你可以这样称呼它:
['a', 'b', 'c'].indexOf('b') // => 1
['a', 'b', 'c'].indexOf('z') // => -1
如果找到则返回索引,否则返回-1。在 Python 中,签名如下所示:
list.index(element, start, end)
你可以这样称呼它:
['a', 'b', 'c'].index('b') # => 1
['a', 'b', 'c'].index('z') # => ValueError: 'z' is not in list
很像吧?在 PHP 中,它看起来像这样:
array_search ( mixed $needle , array $haystack , bool $strict = false ) : int|string|false
array_search('b', ['a', 'b', 'c']); // => 1
array_search('z', ['a', 'b', 'c']); // => false
如果你已经了解indexOf了 JavaScript 的方法,那么不难理解如何array_search在 PHP 中调用或list.index在 Python 中调用方法。对?因此,当您深入了解一种特定语言时,通过重复使用您的知识和经验,学习另一种语言会变得很容易。
这种技术也可以应用于框架。
一旦你学会了 React,你就可以重复使用这些知识来学习另一个类似的框架,比如Yew of Rust。您可以在 Yew 中编写类似这样的组件:
se wasm_bindgen::prelude::*;
use yew::prelude::*;
struct Model {
link: ComponentLink<Self>,
value: i64,
}
enum Msg { AddOne }
impl Component for Model {
...
fn view(&self) -> Html {
html! {
<div>
<button onclick=self.link.callback(|_| Msg::AddOne)>{ "+1" }</button>
<p>{ self.value }</p>
</div>
}
}
}
所以,如果你已经习惯了编写 React,你应该能够快速了解 Yew 框架。您会注意到,像这样的语言之间有很多共同的设计和范式。那是因为开发者社区相互影响。
我最喜欢的是 JavaScript 的想法async/await来自 C#。很有趣,不是吗?因此,大多数想法是现有想法的混合。