成为一名码农前,你应该知道的 10 件事

我知道在软件开发过程中,我不是唯一一个不知道如何开始而耽误软件开发周期的人。

软件开发过程中过多的资源提供了很多机会,但是也增加了第一步的选择难度。这里,对于那些想迈开第一步或正在迈开第一步的人,这里有 10 件事希望你们开始之前能够知道。

1. 选择一门开发语言很重要

软件开发行业有很多开发语言,它们各有自己的长处、短处,分别适用于不同的场景。

虽然你的第一语言几乎肯定是最难学的,而且许多最基本的基础知识在语言(变量、迭代等)之间是相似的,但是值得花时间和精力去做一些研究,并决定你想学习哪种开发语言。

有时候,开发语言的易用性也应该认真考虑下。如果选择一门比较复杂难学的语言会让你感到恐惧,阻碍你进步,那你可以一开始选择一门自己能驾驭的开发语言,这样更容易成功。

另一个关键因素是你为什么学习软件开发。如果你想开发一款 App,那你最好提前开始规划,并研究下哪种开发语言和技术最适合你的需求。

如果你希望以软件工程师的身份加入一家公司,那么列举一下你想加入的 10-20 家公司的名单,找到他们的软件开发岗位上的职位,并记下他们使用的语言,然后学习对应的开发语言。

2. 开发语言的官方帮助文档

开发语言不仅仅是为了理解而创造的,从最基本的概念到最复杂的应用程序,开发语言的语法、框架和类库都在网上有详细的文档记录。我已经列出了以下几个链接,这样您就可以看到这些链接是什么样子的:

Python.org

RubyonRails.org

Reactjs.org

3. Google 是你的好伙伴

每一个软件工程师在遇到困难时都会使用谷歌。这不是像初学者那样学习官方指导文档,而是在实际的工作中,你所遇到的奇怪的问题或错误,已经在 StackOverflow.com 或其他类似网站上有人已经反馈并被解决了。通过 Google 你可以快速解决问题。

4. 这是解决问题的方法,而且可以学习

很多人看 Web 应用程序,觉得它们只是魔术。

事实上他们不是,它们是由精确编写的成百上千行的代码组成的,执行各个函数,并在整个系统中完美地运行。

任何东西或语言都是可以学习的。一开始这毫无意义,就像法语或汉语一开始对非母语者毫无意义一样。但是就像这些语言一样,你一点一点地学会如何用它的语法和措辞来表达你的信息,并学会通过它来传达你想要的任何东西。

5. 你不会知道一切知识

你永远不会知道关于软件工程或者一门开发语言的所有知识。

这是因为有太多的知识需要知道,同时这些知识也在不断的发生变化。

新版本的语言定期发布,具有不同的功能和更新。新的框架和库的出现,每个人都想使用它。

软件工程的唯一不变之处是它总是在变化和发展,你最好能马上适应这个事实。

6. GitHub

GitHub 是一个远程版本控制系统,它与本地版本控制系统 Git 配合工作。

你应该从一开始就有一个 GitHub 帐户,并且学会很熟练的使用 GitHubGit

在项目的开发中,你可能经常遇到这样的场景:“需要修复一个问题,但是还不是很确定如何做,只是去尝试”。这时你就可以使用 Git 管理你的项目。

Git 允许您在不破坏工作代码的情况下做一些开发任务。它允许您从主项目分支创建单独的分支去工作,本质上创建一个单独的代码版本。您可以尝试这种和那种解决问题的方法,文件将被保存,但是在您真正执行 git 提交之前,它不会保存在主分支中。

GitHub 只是本地 Git 存储库的远程存储系统(这也意味着,对于每个项目,您都需要一个本地 Git repo 和一个 GitHub repo)。把它想象成代码的 DropBox。这样,如果你的电脑出了什么事,你写的所有宝贵的代码都不会丢失。

7. HackerRank、LeetCode 和 Codewars

这三个网站(当然还有很多别的网站)有很多编码挑战的题目,供你打磨提高自己的编程技能。

当你能够轻松编写一些基础代码之后,你可以尝试选择上面三个网站中的一个来学习用编程解决问题。通过锻炼不仅能够提高你对开发语言的语法掌握,还能提高你解决问题的能力。

我个人喜欢 LeetCode,因为它能给你关于解决方案质量的真实反馈,而不仅仅是你是否解决了它。不过,我也经常使用 HackerRank,因为我喜欢它提供的挑战。

8. 熟能生巧

你永远不会完美,也永远不会知道一切。但是我怎么强调练习的重要性都不过分。

和其他人一样,我也曾有过这样的感觉:我在努力学习一些根本看不出用途的东西。它会让你感到士气低落,让你想放弃,继续下一个。但我保证,如果你坚持下去——继续练习,即使你觉得自己已经一事无成了——最终你会有那一刻,它确实会响起来。突然间一切都会有意义的。去那里可能很难,但这是值得的。

9. 语言与框架不同,框架与类库不同

常会在一些相似场景下见到开发语言、框架和类库三个名词,但是他们不是一回事。

开发语言是除了二进制外比较接近底层的编程,比如常见的开发语言:RubyJavaPythonJavaScript

类库和框架是建立在开发语言之上的产物,但是他们俩也不是同一种东西。他们都是为了解决通用型问题,使用开发语言抽象开发而来。它们通常是以提供通用的接口方法的形式出现,这样就不必每次都编写这些代码,也不必去生成新的应用程序框架。

使用类库时,软件工程师决定他或她希望在何处使用类库,他或她控制着申请的流程。类库的例子有 React.jsRedux,它们都是 JavaScript 库。使用一个框架,可以让应用程序的流程是预先确定的,比如 Rails 是一个通用的 Ruby 框架, Django 是一个 Python 框架。

10. 比语法更重要的事情

软件工程不仅仅是记忆和理解语法。

当代码按预期工作时,会觉得一切都是很容易的。“当你确信你写的代码是正确的时候,你就已经知道如何调试了”。调试在解决一个复杂的问题时是充满挑战和乐趣的。要做到这一点,你不仅要明白 a+b=c,还要明白为什么 a+b=c。如果你不明白,总有一天你会把 ab 加起来,得到 d,却不知道为什么,也没有工具来找出原因。

在软件开发中,每种开发语言的细微差别和执行一行代码的工作方式是如此重要,因为有时会导致意想不到的后果。


作者:邓士伟
链接:https://juejin.im/post/5e15eb98f265da5d112579f9
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

CCF大数据与计算智能大赛-面向电信行业存量用户的智能套餐个性化匹配模型联通赛-复赛第二名-【多分类,embedding】.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值